You have an error in your SQL syntax...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : You have an error in your SQL syntax...

par ouckileou » 17 juin 2008, 15:28

$machin est une variable PHP quelconque, qui correspondrait chez toi à $nom_com par exemple.

Dans mon exemple, on fait afficher le SQ généré, celui où l'on verra non pas les variables, mais leur valeur, le SQL qui sera donc réellement exécuté par MySQL. C'est ça qui est utile, quand tu nous donnes tes lignes de code nous on ne voit pas ce qui est réellement exécuté.

Donc tu sors ta requête SQL dans une variable et tu fais un echo de cette variable avant de l'exécuter avec mysql_query().

Et au passage, j'adore le nom de certaines de tes variables, tu as quelqu'un qui repassera derrière toi dans le code ?

par rastignac » 17 juin 2008, 15:24

en fait je ne comprends pas cette ligne avec ton $machin .

J'ai mes requêtes :

$resultat2= mysql_query("SELECT * FROM emission WHERE nom_emission='$merde'") or die ('requête invalide:'.mysql_error());
$resultat3= mysql_query("SELECT * FROM commanditaires WHERE nom_commanditaire='$nom_com'")or die ('requête invalide:'.mysql_error());

Que dois-je faire ensuite ? a quoi correspond $machin? (surtout qu'il ne ressert pas ensuite..)
Et j'ai fait echo $resultat2

par ouckileou » 17 juin 2008, 15:17

Voilà donc déjà grosse amélioration on a le message d'erreur en entier.

Donc là bravo tu as appliqué le point numéro 1.

Mais il y ensuite le point numéro 2 :
Faites afficher le SQL généré, c'est à dire la chaîne contenant votre requête et qui résultera d'une concaténation avec des variables par exemple.
C'est ce code SQL qui est important et que vous devrez fournir lors d'une question sur ce forum.
$requeteSQL = "SELECT * FROM table1 WHERE colonne2 = '".$machin."'"; // cette ligne ne sera pas utile pour vous aider
echo $requeteSQL; // <=== par contre le résultat de ceci est utile 
Et ça écoute, sauf erreur de ma part, je ne le vois pas dans tes messages.

par rastignac » 17 juin 2008, 15:14

Ecoute j'ai fait ce qu'il y a marqué je n'arrive toujours qu'à obtenir cette erreur :

requête invalide:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'un titre'' at line 1

Voilà...

par ouckileou » 17 juin 2008, 14:51

Même réponse, voir les conseils de dbéug PHP/SQL : http://www.phpfrance.com/forums/voir_sujet-19378.php

Ce qui me casse les pieds c'est que tu rebalances un message avec les mauvaises balises, sans le message d'erreur de MySQL, sans le SQL généré... bref sans tout ce que tu aurais du mettre si tu avais suivi les conseils que je t'ai donné dans ton précédent sujet :?

You have an error in your SQL syntax...

par rastignac » 17 juin 2008, 14:31

Une autre erreur.
Elle surgit quand j'ouvre un lien qui va me détailler à l'aide d'un tableau les différents champs d'un enregistrement via son ID.

Cela se passe bien quand l'enregistrement est "original" mais quand je l'ai modifié via une page de modif et bien l'erreur ce produit pour visualiser la chose.

Voici le code pour visualiser :

Code : Tout sélectionner

<html> <body bgcolor=#e8eae8> <?php $id=$_GET['id']; $connexion=mysql_Pconnect("localhost","duplex","xx"); if (!mysql_select_db("duplex",$connexion)) { exit; } $resultat1= mysql_query("SELECT * FROM duplex WHERE id=$id"); $sql=mysql_fetch_array($resultat1); $nom_com=$sql["nom_commanditaire"]; $nom_com=mysql_real_escape_string($nom_com); $nom_em=$sql[stripslashes("nom_emission")]; $nom_em=mysql_real_escape_string($nom_em); $merde=$sql["nom_emission"]; $resultat2= mysql_query("SELECT * FROM emission WHERE nom_emission='$merde'") or die ('requête invalide:'.mysql_error()); $resultat3= mysql_query("SELECT * FROM commanditaires WHERE nom_commanditaire='$nom_com'")or die ('requête invalide:'.mysql_error()); $sql2=mysql_fetch_array($resultat2); $sql3=mysql_fetch_array($resultat3); ?> <center><tr><img src=logos/fip.gif align=center><img src=logos/inter.gif align=center> <img src=logos/info.gif align=center> <img src=logos/mrf.jpg align=center> <img src=logos/culture.gif align=center><img src=logos/mouv.gif align=center><img src=logos/musique.gif align=center> <img src=logos/bleu.gif align=center></tr></center> <center><table><br /><tr bgcolor=#FFCC99><td width=900> <div align=center><font size=5> Visualisation du duplex</font></div></td></tr></table> <center><table> <tr><td><div align=left><font size=5><b><i>N° d'affaire :</i></b></font></div></td><td><font size=5><?php echo $sql["numero_affaire"];?></font></td><td><div align=left><font size=5><b><i>Nom de l'émission :</i></b></font></div></td><td><font size=5><?php echo stripslashes($sql["nom_emission"]) ;?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Date de création :</i></b></font></div></td><td><font size=5><?php echo $sql["date_creation"];?></font> </td><td><div align=left><font size=5><b><i>Date du duplex :</i></b></font></div></td><td><font size=5><?php echo $sql["date_duplex"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Heure de début :</i></b></font></div></td><td><font size=5><?php echo $sql["heure_debut"];?></font></td><td><div align=left><font size=5><b><i>Heure de fin :</i></b></font></div></td><td><font size=5><?php echo $sql["heure_fin"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Type de l'émission :</i></b></font></div></td><td><font size=5><?php echo $sql["type_emission"];?></font></td><td><div align=left><font size=5><b><i>Chaîne :</i></b></font></div></td><td><font size=5><?php echo $sql2["nom_radio"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Commanditaire :</i></b></font></div></td><td><font size=5><?php echo $sql3["nom_commanditaire"];?></font></td><td><div align=left><font size=5><b><i>Tel commanditaire :</i></b></font></div></td><td><font size=5><?php echo $sql3["telephonne_commanditaire"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Invité 1 :</i></b></font></div></td><td><font size=5><?php echo $sql["nom_invite1"];?></font></td><td><div align=left><font size=5><b><i>Téléphone invité :</i></b></font></div></td><td><font size=5><?php echo $sql["tel_inv1"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Invité 2:</i></b></font></div></td><td><font size=5><?php echo $sql["nom_invite2"];?></font></td><td><div align=right><font size=5><b><i>Téléphone invité :</i></b></font></div></td><td><font size=5><?php echo $sql["tel_inv2"];?></font></td></tr> <tr><td><div align=left><font size=5><b><i>Qualité :</i></b></font></div></td><td><font size=5><?php echo $sql["qualite"];?></font></td><td></td> </tr> <table><tr><td width=900 bgcolor=#FFCC99><div align=center><font size=5> Emetteur</font></div></td></tr> </table> <center><table><tr><td><font size=5><b><i>Studio émetteur :</i></b></font></td><td><font size=5><?php echo $sql["numero_studioE"];?></font></td> </tr> <tr><td><font size=5><b><i>Emetteur :</i></b></font></td><td><font size=5><?php echo $sql["emetteur"];?></font></td> </tr></center></table> <table><tr><td width=900 bgcolor=#FFCC99><div align=center><font size=5> Récepteur</font></div></td></tr></table> <center><table><tr><td><font size=5><i><b>Studio récepteur :</i></b></font></td><td><font size=5><?php echo $sql["numero_studioR"];?></font></td> </tr> <tr><td><font size=5><b><i>Récepteur :</i></b></font></td><td><font size=5><?php echo $sql["recepteur"];?></font></td> </tr> </center></table> <center><table><tr width=1000><td width=200><div align="right"><br /><font size=5><b><i>Observations :</i></b></font></div></td><td width=600><br /><font size=5><?php echo $sql["observations"];?></font></td></tr></center></table> <center><table> <br /><tr><td bgcolor=#FFCC99> <?php echo " <a href=\"rduplexmodif.php?id=$id\"><font size=4>Modifier informations</font></a>"; echo "\n"; ?> <br> </br> <?php echo " <a href=\"rduplex4.php?id=$id\"><font size=4>Changer le duplex avec conservation de trace </font></a>"; echo "\n"; ?> <br> </br> <?php echo " <a href=\"essaipdf4.php?id=$id\"><font size=4>Envoyer le Duplex (PDF)</font></a>";?> <br> </br> <?php echo " <a href=\"sduplex.php?id=$id\"><font size=3>!! Supprimer le duplex !!</font></a>";?> </td> </tr> </table></center> </body> <center><br /><a href="coordinateur.php"><font size=4>Revenir à la page d'accueil des coordinateurs</font></a></center> </html>
Quelqu'un a une idée ou vous etes comme moi ça vous casse les pieds?