probleme champs vide

Eléphanteau du PHP | 25 Messages

14 déc. 2012, 16:10

j'essaye de modifier mes valeurs dans ma base de données, mais quand j’exécute ce code mon champ de formulaire select est vide
pourquoi ?
					
<?php 
                                                        $host = "localhost"; 
							$user = "root";
							$pass = "";
							$bdd = "entretien";
							// connexion
							@mysql_connect($host,$user,$pass)
							   or die("Impossible de se connecter");
							@mysql_select_db("$bdd")
							   or die("Impossible de se connecter à la base"); 
							$nom = $_POST['Nom'];
							$prenom = $_POST['Prenom'];
							
							
							$result = mysql_query("SELECT * FROM personne where Nom like '$nom' and Prenom like '$prenom' ");
					$list = mysql_query("SELECT situation FROM personne ");//requete pour listing personnes

					echo '<select name="situation">';//création du select

					while ($data = mysql_fetch_array($result))
					{
						while ($row = mysql_fetch_array($list)) {
							if ($row["situation"] == $data["situation"]) //si la personne trouvée est celle de reponse, alors
								echo '<option value="'.$row["situation"].'" selected>'.$row["situation"].'</option>';//option avec select
							else
								echo '<option value="'.$row["situation"].'">'.$row["situation"].'</option>';//option sans select
						}
					}
					echo '</select>';//fin du select ?>
merci d'avance

Mammouth du PHP | 702 Messages

14 déc. 2012, 16:51

s'il est vide c'est que ta requête qui doit généré tes options ne trouve rien, donc tes conditions sont mauvaises. teste ta requête dans PHPMyAdmin tu verra bien.

Donc peut être que rien ne correspond au nom et au prénom.

Eléphanteau du PHP | 25 Messages

14 déc. 2012, 17:00

je peux pas le tester dans phpmyadmin , il y a $nom et $prenom.

nom et prénom ont quelque chose car j'utilise cette requete pour afficher dans un input de type text et cela marche très bien.

d'autre solution ?

Mammouth du PHP | 702 Messages

14 déc. 2012, 17:03

ton code est trop vulnérable, je te fais une injection dans ta base quand tu veux...

Essai un truc du genre
$result = mysql_query("SELECT * FROM `personne` WHERE `Nom` LIKE '".mysql_real_escape_string($nom)."' && `Prenom` LIKE '".mysql_real_escape_string($prenom)."'");
Par ailleurs essai d'adopter une convention de nommage c'est un peu du n'importe quoi la... Niveau sécurité y'a du boulot aussi...

Eléphanteau du PHP | 25 Messages

14 déc. 2012, 17:07

certes il est pas sécurisé mais cela m'importe, je veux que mon code marche ?
mais merci ça me servira !