Page 1 sur 1

Extraire des données de mysql

Posté : 07 nov. 2005, 23:50
par eirwan
Bonjour ! J'ai fait un petit site avec une base de données consultables en ligne, le script pour entrer les données marche nickel, mais par contre celui pour les recherches...:(
En fait, j'ai un champ de texte (name), associé à une liste déroulante (choice), qui représente un champ, et dans mon script qui suit, je voudrais que ça affiche tous les enregistrements où le champ choice vaut name... mais évidemment ça marche pas...
  <?php
  $name=$_POST['name'];
  $choice=$_POST['choice']; 
   if ($choice ="Nom de joueur")
   {
  	$request="nplayer";
  	$sql="SELECT * FROM espions WHERE '$request'=".$name.";";
  }
  elseif($choice="Nom de plan&egrave;te")
  {
  	$request="nplanete";
	$sql="SELECT * FROM espions WHERE '$request'=".$name.";";
  }
  elseif($choice="Ally")
  {
  	$request="nally";;
	$sql="SELECT * FROM espions WHERE '$request'=".$name.";";
  }
  $result = mysql_query($sql, $connect);
  //définit la boucle : tant qu'il y a des messages dans la BDD
while($val=mysql_fetch_array($result))
{
    // Affiche le pseudo du joueur 
echo  '<font color=\"#ffffff\" face=\"verdana, arial\">Le joueur'.$val['nplayer'].'de la planète'.$val['nplanete'].'a sondé'.$val['name'].'le'.$val['date'].'.</font>';  
 }	
  ?>
Bon voilà est-ce que quelqu'un pourrait m'expliquer ce qui cloche dans ce code, et pourquoi je n'obtiens aucune sortie ?

Posté : 08 nov. 2005, 00:15
par Truc
Salut,tu t'enmèle un peu avec les requetes, par exemple la premiere:
$sql="SELECT * FROM espions WHERE '$request'=".$name.";"; 
devrai etre:
$sql="SELECT * FROM espions WHERE ".$request."=".$name.";";
sans les apostrophes tu aura certainement plus de chances.

Sinon il y a moyen plus rapide et facile pour faire ce que tu veut. Tu as une liste et je suppose que tu as un attribut value dans les balises <option> dans lesquels tu met "Nom de joueur", "Ally" .... donc tu peut mettre en value "nplayer", "nally" ce qui évitera tous ces tests que tu fait, tu aurai donc quelque chose comme ça:
$name=$_POST['name'];
$choice=$_POST['choice']; 
$sql="SELECT * FROM espions WHERE ".$request".=".$name;
$result = mysql_query($sql, $connect); 
...

Posté : 08 nov. 2005, 23:35
par Invité
Ben en remplaçant la requête SQL ça marche toujours pas, et pour les values, j'arrive pas à les rajouter avec Dreamweaver, et je connais pas la syntaxe pour les mettre directement dans le code...

Posté : 09 nov. 2005, 19:51
par Ultiny
T'es vraiment sûr que la cellule contiendra name et seulement name? Elle ne risque pas de contenire autre chose avant ou après?

Si il contient par exemple "Salut name" ba ça marchera pas un WHERE... = name