IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

un bug! voici le script


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut un bug! voici le script
    Bonsoir à tous,
    je galère avec mes scripts. Voila, j'ai un script de suppression d'enregistrements. il supprime les enregistrements un par un et les paramètres lui sont envoyé par l'url. On a comme paramètre le nom de la table concernée (désigné par quelque chose comme 'zone') et la valeur de la clé (désignée par quelque chose comme 'code'). Il est sensé marché pour les tables qui n'ont qu'un seul champ comme identifiant (pas d'identifiant composé de 2 champs.) du moins pour le moment.
    Le problème c'est que en ce moment j'ai l'erreur "Undefined variable: Mescodes", Mescodes c'est le tableau ou je rescence toutes les clés de la table concernée pour voir si la valeur passée en paramètre en fait partie.
    Bref voici le code. si vous pouvez m'aidez ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <?php session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="fr">
    <head>
    	<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    	<title>Suppression</title>
        <link rel="stylesheet" media="screen" type="text/css" title="Design" href="mycss.css" />
    </head>
    <body style="margin: 0%;">
    <?php
    if (!isset($_SESSION['slogin']))
    {
    	echo"<script LANGUAGE='JavaScript'>document.location.href='index.php'</script>";
    }	
    ?>
    <div id="Titre">
    <p style="font-size: 2em; margin-top: 0%; margin-bottom: 0%; text-align: center; color: rgb(51, 51, 51);">Mon site</p>
    <p id="menubis">
    <dl>
    <dt><a href="destroy.php" target="Fcorps">D&eacute;connexion</a></dt><dt>compte:<?php echo " ". $_SESSION['slogin']; ?></dt>
    </dl>
    </p>
    </div>
    <br>
    <br>
    <br>
    <div id="Corps">
    <p class="Banderole">SUPPRESSION</p>
    <?php
     
    $Zone= htmlspecialchars($_GET['zone']);
    $Code= htmlspecialchars($_GET['code']);
     
    if ($Zone=='equipements' or $Zone=='ateliers')
    {
    	//Je me connecte à information_schema
    	try { $id_db = new PDO('mysql:host=localhost;dbname=information_schema', $_SESSION['slogin'], $_SESSION['spasswd']
    	,array(PDO::ATTR_PERSISTENT => true)); }
    	catch(Exception $e){ die('Erreur : '.$e->getMessage()); }
    	//je cherche le nom du champ identifiant ou champ clé de la table 
    	$req = $id_db->prepare("SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA='mabd' and TABLE_NAME=:Zone and COLUMN_KEY= 'PRI'");
    	$req->execute(array('Zone'=> $Zone));
    	$ligne = $req->fetch();
    	$Ki= $ligne[0];
    	echo $Ki; //c'est le champ clé, je suppose qu'il y en a un seul, il apparait donc tout marche jusqu'ici
    	$req->closecursor();
    	$id_db = null; //Je ferme la connexion
    	//Je me connecte à ma bd
    	try { $id_db2 = new PDO('mysql:host=localhost;dbname=mabd', $_SESSION['slogin'], $_SESSION['spasswd']
    	,array(PDO::ATTR_PERSISTENT => true)); }
    	catch(Exception $e){ die('Erreur : '.$e->getMessage()); }
    	//Je récolte toutes les clés présente dans la table
    	$req = $id_db2->prepare('SELECT :Ki FROM :Zone');
    	$req->execute(array('Ki'=> $Ki, 'Zone'=>$Zone));
     
    		while($ligne=$req->fetch())
    		{
    			echo $ligne[0];
    			$Mescodes[] = $ligne[0];
    		}
    		$req->closecursor();
    	//Je vérifie que la clé passé en paramètre fait partie des clés de la table
    	if (in_array($Code, $Mescodes))
    	{
    		//Je cherche l'enregistrement à supprimer pour montrer à l'utilisateur ce qu'il est sur le point de supprimer
    		$req = $id_db2->prepare('SELECT * FROM :Zone WHERE :Ki= :Code');
    		$req->execute(array('Zone'=> $Zone, 'Ki'=> $Code));
    		$ligne = $req->fetch();
    ?>
    		<table id="Maliste"><caption><strong>ELEMENTS A SUPPRIMER</strong></caption><tbody>
    <?php
    		foreach($ligne as $cle => $element)
    		{
    		    echo '<tr><td>'.$cle.'</td>'.'<td>'.$element.'</td></tr>';
    		}
    ?>
    		</tbody></table>
    <?php		
    		//Suite du code...
    	}
    	else die("Paramètres incorrects!!");
    }
    else die("Paramètres incorrects!")
    ?>
     
    <br />
    <br />
     
    </div>
    <div id="Pied">&nbsp;Copyright Bric &amp;
    Brac, 2010</div>
    </body></html>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Tu dois déclarer la varibale array avant de l'utiliser .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Mescodes = array();
    while($ligne=$req->fetch())
    		{
    			echo $ligne[0];
    			$Mescodes[] = $ligne[0];
    		}

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Merci beaucoup, je comprends mieux. Mais le problème persiste après avoir ajouté ton bout de code. J'ai constaté que je n'accède pas à l'intérieur de la boucle while, ce qui veut dire que la condition qu'elle possède n'est pas remplie. J'en déduis que la requête en amont n'arrive pas à s'exécuter. peut être faudrait t'il que je reprécise la bd que j'utilise à l'intérieur de la requête mais je ne voit pas comment et comme tu peux le voir j'ai même changé l'identifiant de connexion pour eviter la confusion.
    Je me demande à présent s'il n'y aurait pas une config qui m'empêcherait d'avoir accès aux deux bd dans le même script.

    Merci d'avance.

Discussions similaires

  1. [V7] Bug mail.group_all_employees : script de contournement
    Par DiegoM dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 22/07/2015, 08h11
  2. Hashage html: Bugs dans mon Script Perl
    Par lauvydream dans le forum Langage
    Réponses: 2
    Dernier message: 18/09/2013, 15h41
  3. Bug sur un script: DisplayObject
    Par Elo97133 dans le forum Dynamique
    Réponses: 1
    Dernier message: 27/01/2012, 17h42
  4. [POO] Bug dans mon script
    Par tremeur53 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/03/2008, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo