[Résolu] Erreur de syntaxe, qui peut m'aider ?

Erreur de syntaxe, qui peut m'aider ? [Résolu] - PHP - Programmation

Marsh Posté le 16-08-2006 à 20:13:27    

Bonjour à tous,
 
Voici déjà plusieurs jours que je bloque sur une erreur qui doit être des plus bêtes.
 
Voici mes deux parties de code :
 

Code :
  1. <?php
  2.  $db = mysql_connect("localhost", "root", "" ) or die('Erreur de connexion '.mysql_error());
  3.    mysql_select_db("carnet",$db) or die('Erreur de selection '.mysql_error());
  4.  $sql = "select name, firstname from carnet order by name, firstname asc";
  5.  $result = mysql_query($sql);
  6.   while ($row = mysql_fetch_array($result)) {
  7.    echo "<br><a href=\"carnet.php?nom=".$row['name']."&prenom=".$row['firstname']."\">".$row['name']."&nbsp;".$row['firstname']."</a>";
  8.   }
  9.  mysql_close($db);
  10. ?>


 
page carnet.php :

Code :
  1. <?php
  2.  $db = mysql_connect("localhost", "root", "" );
  3.    mysql_select_db("carnet",$db);
  4.  $nom = $_GET['nom'];
  5.  $prenom = $_GET['prenom'];
  6.  $sql = mysql_query("select * from carnet where name='.$nom.', firstname='.$prenom.'" ) or die(mysql_error());
  7.  while ($row = mysql_fetch_array($sql)) {
  8.   echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"10\" width=\"650\" align=\"center\">\n";
  9.   echo "<tr>\n";
  10.   echo "<td width=\"35%\"><center>photo</center></td>\n";
  11.   echo "<td width=\"65%\">\n";
  12.   echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"3\" width=\"400\">\n";
  13.   echo "<tr>\n";
  14.   echo "<td class=\"row_gris\">Nom :&nbsp;".$row['firstname']."&nbsp;".$row['name']."</td>\n";
  15.   echo "</tr>\n";
  16.  }
  17.  mysql_close($db);
  18. ?>


 
et l'erreur est celle-ci : Erreur de syntaxe près de ' firstname='.Rouky.'' à la ligne 1
 
 
merci d'avance à qui pourra m'aider


Message édité par Xdead le 16-08-2006 à 20:59:57
Reply

Marsh Posté le 16-08-2006 à 20:13:27   

Reply

Marsh Posté le 16-08-2006 à 20:26:51    

enleve les points tu concatenes rien la

Reply

Marsh Posté le 16-08-2006 à 20:31:51    

Reply

Marsh Posté le 16-08-2006 à 20:34:46    

mais où dois-je enlever les points ?

Reply

Marsh Posté le 16-08-2006 à 20:42:53    

$sql = mysql_query("select * from carnet where name='$nom', firstname='$prenom'" ) or die(mysql_error());

Reply

Marsh Posté le 16-08-2006 à 20:49:54    

merci Olivier51 mais ça ne change rien toujours la même erreur

Reply

Marsh Posté le 16-08-2006 à 20:55:42    

il faut mettre AND et pas une virgule :
 
$sql = mysql_query("select * from carnet where name='$nom' AND firstname='$prenom'" )

Reply

Marsh Posté le 16-08-2006 à 20:59:13    

merci mille fois Goumag ;-)

Reply

Marsh Posté le 16-08-2006 à 21:09:13    

ah ouais, meme pas fait gaffe ;)

Reply

Marsh Posté le 16-08-2006 à 21:14:17    

POur complèter l'histoire des points (opérateur de concaténation de chaine en PHP), si tu veux que ça marche outre le problème du AND :
$sql = mysql_query("select * from carnet where name='".$nom."' AND firstname='".$prenom."'" )
 
Mon premier lien était juste pour te signaler de faire attention aux variables que tu mets dans ta requete SQL, il y a deux problèmes dans ton script :
- la sécurité - SQL injection : voir le lien fournit
- et ça plante si un de tes amis s'appelle : l'ucien ou gwen'

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed