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 :

variables non reconnues [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut variables non reconnues
    bonjour à tous

    voila j'ai fait une page en php ( un formulaire )
    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
    <?php
    /* Nom du programme : ajoutpatient.php
     * description : le programme affiche un formulaire qui
     * permet d'ajouter un patient.
     */
     
     
    echo "<html>
    <title>Ajouter un patient</title>
    
    
    </head>
    
    <body>";
     
    $etiquette=array ("nom"=>"Nom",
    				  "prenom"=>"Prenom",
    				  "naissance"=>"Date de naissance",
    				  "sexe"=>"Sexe",
    				  "service"=>"Service",
    				  "chambre"=>"Chambre");
     
     
    echo "<h1>Ajouter un patient :</h1>
    
    <p><hr>";
    /* creation du formulaire*/				  
    echo"
    <form action='TajoutPatient.php' method='post'>
    <center>
    <table width='95%' border='0' cellspacing='0' cellpadding='2'>
    
    <tr><td align='right'><B>{$etiquette['nom']}:</br></td>
    <td><input type='text' name='nom' size='35' maxlength='35' value=''/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['prenom']}:</br></td>
    <td><input type='text' name='prenom' size='35' maxlength='35' value=''/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['naissance']}:</br></td>
    <td><input type='text' name='naissance' size='35' maxlength='35' value=''/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['sexe']}:</br></td>
    <td><input type='radio' name='sexe' value='masculin' checked='checked' /> M 
    <input type='radio' name='sexe' value='feminin' /> F</td>
    
    </tr>";
     
    /* cretion d'un menu deroulant dynamique pour les services*/
    /* on ouvre la connection à la base de données*/
    include("connect.inc.php");
    $liendb = mysql_connect ($bddserver, $bddlogin, $bddpassword);
    mysql_select_db ($bdd);
     
    /*on ecrit la requete sql pour lire la base de données*/
    $sql="select distinct uf_service, libelle from service order by id ";
    $resultat = mysql_query($sql) or die ("Execution de la requête impossible.");
     
    /*creation du menu deroulant*/
    echo"<tr><td align='right'><B>{$etiquette['service']}:</td>
    <td><select name='service'>";
    /*creation de la boucle de lecture*/
    while ($ligne=mysql_fetch_array($resultat))
    {
    	extract ($ligne);
    	if ($libelle<>"")
    	echo "<option value='$libelle'>$libelle";
    }
    echo"</select></td></tr>";
    /*fin du menu deroulant*/
     
    mysql_close($liendb);
     
    echo"<tr><td align='right'><B>{$etiquette['chambre']}:</td>
    <td><input type='text' name='chambre' size='35' maxlength='35' value=''/></td>
    
    </tr>
    </table>
    <p><input type='submit' value='valider'>
    </form>
    </center>
    </body>
    </html>";
     
    ?>
    bon jusqu'ici tout va bien !
    je vais jusqu'a la page de traitement du formulaire en clikant sur le bouton.
    voici la page de traitement
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    <?php
    /* Nom du programme : ajouTPatient.php
     * description : le programme test les champs vides.
     si des champs obligatoires sont vides alors on réaffiche le formulaire 
     * en indiquant les champs à remplir sinon 
     * on executes la requete d'insertion dans la base de données 
     */
     ?>
    <html>
    <head>
    <title>traitement ajout patient</title>
     
     
    </head>
     
    <body>
    <?php
    // definir les champs à tester
    $etiquette=array ("nom"=>"Nom",
    				  "prenom"=>"Prenom",
    				  "naissance"=>"Date de naissance",
    				  "sexe"=>"Sexe",
    				  "service"=>"Service",
    				  "chambre"=>"Chambre");
     
    //Controler tous les champs sauf le champs sexe.
    foreach ($_POST as $clé => $valeur)
    			{ if ($clé != "sexe")
    				{if ($valeur == "")
    					{$champsvide[$clé]="blanc";
    	}
    		}
    			} //fin de la boucle foreach pour $_post
     
    //si l'un des champs est vide, afficher un mesage
    if (@sizeof($champsvide) > 0)//en cas de champs vide
    {
    echo "<b>Les champs obligatoires suivant ne sont pas renseignés. Vous devez saisir :</b><br>";
     
    //affichage du nom des informations requises
    foreach ($champsvide as $clé => $valeur)
    {
    echo "&nbsp;&nbsp;&nbsp;{$etiquette[$clé]}<br>";
    }//fin de la boucle foreach pur les champs vierges
     
    //réafficher le formulaire
    $nom=trim(strip_tags($_POST['nom']));
    $prenom=trim(strip_tags($_POST['prenom']));	
    $naissance=trim(strip_tags($_POST['naissance']));	
    $sexe=trim(strip_tags($_POST['sexe']));
    $service=trim(strip_tags($_POST['service']));
    $chambre=trim(strip_tags($_POST['chambre']));
     
    echo "<h1>Ajouter un patient :</h1>";
     
    echo "<p><hr>";
    /* creation du formulaire*/
     
    echo"<form action='TajoutPatient.php' method='post'>
    <center>
    <table width='95%' border='0' cellspacing='0' cellpadding='2'>
    
    <tr><td align='right'><B>{$etiquette['nom']}:</td>
    <td><input type='text' name='nom' size='35' maxlength='35' value='$nom'/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['prenom']}:</td>
    <td><input type='text' name='prenom' size='35' maxlength='35' value='$prenom'/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['naissance']}:</td>
    <td><input type='text' name='naissance' size='35' maxlength='35' value='$naissance'/></td>
    
    </tr>
    
    <tr><td align='right'><B>{$etiquette['sexe']}:</td>
    <td><input type='radio' name='sexe' value='$sexe'checked='checked' /> M 
    <input type='radio' name='sexe' value='$sexe' /> F</td>
    
    </tr>";
     
    /* cretion d'un menu deroulant dynamique pour les services*/
    /* on ouvre la connection à la base de données*/
    include("connect.inc.php");
    $liendb = mysql_connect ($bddserver, $bddlogin, $bddpassword);
    mysql_select_db ($bdd);
     
    /*on ecrit la requete sql pour lire la base de données*/
    $sql="select distinct uf_service, libelle from service order by id ";
    $resultat = mysql_query($sql) or die ("Execution de la requête impossible.");
     
    /*creation du menu deroulant*/
    echo"<tr><td align='right'><B>{$etiquette['service']}:</td>
    <td><select name='service'>";
    /*creation de la boucle de lecture*/
    while ($ligne=mysql_fetch_array($resultat))
    {
    	extract ($ligne);
    	if ($libelle<>"")
    	echo "<option value='$libelle'>$libelle";
    }
    echo"</select></td></tr>";
    /*fin du menu deroulant*/
     
    mysql_close($liendb);
     
    echo"<tr><td align='right'><B>{$etiquette['chambre']}:</td>
    <td><input type='text' name='chambre' size='35' maxlength='35' value='$chambre'/></td>
    
    </tr>
    </table>
    <p><input type='submit' value='valider'>
    </form>
    </center>";
     
    exit();
    }
    else 
    {
     
    /* on ouvre la connection à la base de données*/
    include("connect.inc.php");
    $liendb = mysql_connect ($bddserver, $bddlogin, $bddpassword);
    mysql_select_db ($bdd);
     
    /* on ecrit la requete sql pour ajouter un patient dans la base de données.*/
    $sql = "insert into patient (nom,prenom,naissance,sexe,service,chambre,enable)
    		values ('$nom','$prenom','$naissance','$sexe','$service','$chambre','1')";
    $result = mysql_query($sql) or die ( "Execution de la requete impossible." );
    echo "le patient $nom $prenom à été ajouté avec succés.";
     
    mysql_close($liendb);
    }
     
    ?>
    </body>
    </html>
    la 1ere partie du code fonctionne bien. le traitement du contrôle des champs va bien mais lorsque j'arrive au "else"
    Notice: Undefined variable: nom in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130

    Notice: Undefined variable: prenom in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130

    Notice: Undefined variable: naissance in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130

    Notice: Undefined variable: sexe in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130

    Notice: Undefined variable: service in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130

    Notice: Undefined variable: chambre in G:\wamp\www\rendez-vous patient\TajoutPatient.php on line 130
    Execution de la requete impossible.
    pourquoi mes variable ne sont elles pas reconnues?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tes variables sont définies dans le if et utilisées de le else.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par herve911 Voir le message
    pourquoi mes variable ne sont elles pas reconnues?
    En parcourant rapidement ton code, j'ai l'impression que tu as défini tes variables $nom,... dans le if. Donc, si tu arrives dans le else, elles ne sont pas définies.

    J'espère que j'ai pu t'aider.
    -- darkrique --

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    je dois redeclarer mes variables dans le "else"?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il serait plus logique de les déclarer avant le if plutot que de le faire 2 fois
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    ok merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2008, 18h04
  2. [Tableaux] Variable non reconnue
    Par oceane751 dans le forum Langage
    Réponses: 31
    Dernier message: 05/01/2007, 23h22
  3. variable non reconnue dans une requête sql
    Par sanatou dans le forum C++
    Réponses: 3
    Dernier message: 13/12/2006, 17h43
  4. variable non reconnue
    Par shnouf dans le forum Langage
    Réponses: 7
    Dernier message: 13/02/2006, 16h44
  5. variables non reconnues
    Par syscom14 dans le forum Langage
    Réponses: 6
    Dernier message: 11/10/2005, 18h37

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