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 25/10/2011, 14h55   #1
Invité de passage
 
Inscription : avril 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 11
Points : 3
Points : 3
Par défaut liste déroulante sur bdd récupération d'une valeur

Bonjour à tous j'espère qu'une personne pourra me répondre et que j'arriverai à bien m'exprimer.

Voilà j'ai un petit formulaire qui une liste déroulante cette liste déroulante prend ses valeurs dans une bdd qui s'appelle "etablissement" et d'une table qui s'appelle "eta" jusque là pas de soucis. Sauf que je voudrais maintenant prendre la valeur de la liste déroulante et qu'elle se mette dans une autre table qui s'appelle "classe". Dans mes deux table il y a le champ "nomEta" et les deux champs sont lié enfin la clé étrangère dans la table "classe" est "nomEta". Le soucis c'est quand je clique sur Envoyer ben on dirai que ça marche car aucune erreur de mise mais je ne vois rien dans ma table ensuite.

Je vous mets le code que j'utilise et les tables j'espère que vous pourrez m'aidez.

Merci d'avance

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
 
<body>
 
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded" >
<fieldset>
<legend>Classe</legend>
<table>
</tr>
<tr>
<td>Nom classe</td><td><input type="text" name="nomClasse" maxlength="60" /></td>
</tr>
<br/>
<tr>
<td>Etablissement</td>
<td>
<?php
 
// Affiche les resultat d'un requete dans une liste déroulante
echo "<select name='et'>";
 
$connection=mysql_pconnect("localhost","root","") or die('erreur');
$db = mysql_select_db("etablissement", $connection) or die ("erreur");
 
$requete=mysql_query("SELECT nomEta FROM eta");
$nombrelignes = mysql_numrows($requete);
for ($i=0;$i<$nombrelignes;$i++) {
$nom = mysql_result($requete,$i);
echo "<option value='etab'> $nom </option>";
}
 
echo '</select>';
?> 
</td>
</tr>
<br/>
<tr>
<td><input type="reset" value="Effacer" /></td>
<td><input type="submit" value="Envoyer" /></td>
</tr>
</table>
</fieldset>
</form>
 
<?php
include ('connex.inc.php');
if(!empty($_POST['nomClasse'])&& !empty($_POST['etab']))
{
	$idClasse="\N";
	$nomClasse=$_POST['nomClasse'];
 
	$requete="INSERT INTO classe VALUES('$idClasse','$nomClasse','$nom')";
	$idcom=connex('etablissement','pass');
	$result=mysql_query($requete,$idcom);
	mysql_close($idcom);
	if(!$result)
	{
		echo "<h2>Erreur d'insertion</h2>";
	}
	else
	{
		echo "<script type=\"text/javascript\">
		alert ('Votre établissement est bien enregistré')</script>";
	}
}
else 
{
	"Formulaire à compléter";
}
 
 
?>
 
</body>
Capture1.PNG

Capture2.PNG
zeon71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 15h34   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 663
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 663
Points : 5 390
Points : 5 390
Je te conseille de faire un var_dump($_POST); histoire de voir ce que te renvoie réellement ton formulaire.

Sinon, je trouve la construction de ta liste déroulante bizarre : toutes tes options ont la même valeur ? (rappel : l'attribut value de la balise option est la valeur qui est envoyée par le formulaire)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 00h06   #3
Invité de passage
 
Inscription : avril 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 11
Points : 3
Points : 3
Merci de ta réponse et dsl de mon temps de réponse.

Donc j'ai essayé ce qui me donne :

array
'nomClasse' => string '3A' (length=2)
'et' => string 'etab' (length=4)

en image ici : Capture3.PNG

Pour ma liste déroulante j'ai pensé (car je suis débutant mais bon ça se voit ) que de mettre une valeur me permettrais de récupérer la valeur qui est écrite dans la liste déroulante.Mais j'ai changé un partis de mon code pour voir mais j'ai toujours le même résultats rien ne va dans la table mais vu que je ne n'arrive pas à récupérer la bonne valeur ça venir qu'il ne se passe rien dans phpmyadmin.

Donc en gros que faire pour lui dire incrémente mon champ nomEta.

Voilà le code changer à la ligne 49

Code php :
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
<body>
 
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded" >
<fieldset>
<legend>Classe</legend>
<table>
</tr>
<tr>
<td>Nom classe</td><td><input type="text" name="nomClasse" maxlength="60" /></td>
</tr>
<br/>
<tr>
<td>Etablissement</td>
<td>
<?php
 
// Affiche les resultat d'un requete dans une liste déroulante
echo "<select name='et'>";
 
$connection=mysql_pconnect("localhost","root","") or die('erreur');
$db = mysql_select_db("etablissement", $connection) or die ("erreur");
 
$requete=mysql_query("SELECT nomEta FROM eta");
$nombrelignes = mysql_numrows($requete);
for ($i=0;$i<$nombrelignes;$i++) {
$nom = mysql_result($requete,$i);
echo "<option value='etab'> $nom </option>";
}
 
echo '</select>';
?> 
</td>
</tr>
<br/>
<tr>
<td><input type="reset" value="Effacer" /></td>
<td><input type="submit" value="Envoyer" /></td>
</tr>
</table>
</fieldset>
</form>
 
<?php
include ('connex.inc.php');
if(!empty($_POST['nomClasse'])&& !empty($_POST['etab']))
{
	$idClasse="\N";
	$nomClasse=$_POST['nomClasse'];
	$etab=$_POST['etab'];
	$requete="INSERT INTO classe VALUES('$idClasse','$nomClasse','$etab')";
	$idcom=connex('etablissement','pass');
	$result=mysql_query($requete,$idcom);
	mysql_close($idcom);
	if(!$result)
	{
		echo "<h2>Erreur d'insertion</h2>";
	}
	else
	{
		echo "<script type=\"text/javascript\">
		alert ('Votre établissement est bien enregistré')</script>";
	}
}
else 
{
	"Formulaire à compléter";
}
 
 var_dump($_POST);
?>
 
</body>
zeon71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 10h14   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 663
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 663
Points : 5 390
Points : 5 390
Regarde bien : ton formulaire te renvoie une valeur pour $_POST['et'] et tu essayes de lire $_POST['etab']. Le plus simple est de changer le nom de ta liste déroulante pour coordonner les deux...
Et pour récupérer la valeur affichée dans une liste déroulante, il faut mettre la même valeur dans value.

Ce qui donnerait quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Affiche les resultat d'un requete dans une liste déroulante
echo '<select name="etab">';
 
$connection = mysql_connect('localhost','root','') or die('erreur');
$db = mysql_select_db('etablissement', $connection) or die ('erreur');
 
$requete = mysql_query('SELECT nomEta FROM eta');
$nombrelignes = mysql_numrows($requete);
for ($i=0; $i<$nombrelignes; $i++) {
	$nom = mysql_result($requete,$i);
	echo '<option value="'.$nom.'"> '.$nom.' </option>';
}
 
echo '</select>';
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 10h43   #5
Invité de passage
 
Inscription : avril 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 11
Points : 3
Points : 3
Nickel merci de m'avoir fait voir ça je ne connaissais pas j'espère que ça pourra aussi servir a d'autres. Un grand merci en particulier à toi Célira.

Problème résolu. ^^
zeon71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 10h56   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 663
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 663
Points : 5 390
Points : 5 390
Un petit clic sur alors
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 11h23   #7
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par Celira Voir le message
Un petit clic sur alors
Et n'oublies pas le bon point pour la dame , ça compte.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 15h42   #8
Invité de passage
 
Inscription : avril 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 11
Points : 3
Points : 3
Hé oui le bon point pour la dame voilà j'ai mis désolé je savais que j''avais oublié de cliquer dessus.

Bonne journée
zeon71 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 12h21.


 
 
 
 
Partenaires

Hébergement Web