Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 22h48   #1
Invité régulier
 
Inscription : janvier 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 36
Points : 8
Points : 8
Par défaut variables non reconnues

bonjour à tous

voila j'ai fait une page en php ( un formulaire )
Code :
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 :
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"
Citation:
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?
herve911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 22h56   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tes variables sont définies dans le if et utilisées de le else.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 22h59   #3
Invité de passage
 
Inscription : mars 2002
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 3
Points : 2
Points : 2
Envoyer un message via ICQ à darkrique Envoyer un message via MSN à darkrique
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 02h13   #4
Invité régulier
 
Inscription : janvier 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 36
Points : 8
Points : 8
je dois redeclarer mes variables dans le "else"?
herve911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h27   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il serait plus logique de les déclarer avant le if plutot que de le faire 2 fois
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 22h30   #6
Invité régulier
 
Inscription : janvier 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 36
Points : 8
Points : 8
ok merci de votre aide
herve911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web