error in your SQL syntax

Hichoum
Invité n'ayant pas de compte PHPfrance

15 oct. 2005, 13:30

Bonjour tout le monde :),

j'ai fais un script qui me permet de modifier un edito en ligne le fonctionnement de celui ci est :
Si on rentre le bon titre et la bonne signature alors on fait un UPDATE de l'edito. masi je dois avoir un probleme de syntax MYSQL voici le code erreur que me renvois mysql :


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 '' at line 1

j'ai beau regarder je ne vois vraiment pas d'ou ca peu venir alors si qq pouvait m aider j ai mis le code dans la wall :
http://phpdebutant.org/wall3476.php

D'avance merci
Hicham

Mammouth du PHP | 19672 Messages

15 oct. 2005, 13:37

Quel est le message d'erreur complet ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 oct. 2005, 16:02

Salut, affiche ta requete générée par php=> echo $rq;

a tous les coups une variable est vide,certainement cell-ci $ligne[3], qui d'ailleur n'est pas encadré par des quotes.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Hichoum
Invité n'ayant pas de compte PHPfrance

15 oct. 2005, 16:36

Voila le message d erreur complet :
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 '' at line 1

UPDATE edito_tb SET edito=('gjhglkhglkgkglkg') WHERE signature=

donc ce que je ne comprends pas c est pourquoi signature=rien comment puis je faire pour y remedier

D'avance merci

Mammouth du PHP | 19672 Messages

15 oct. 2005, 16:44

Regarde dans ta clause where, la valeur n'est pas entre apostrophes :
$rq = "UPDATE edito_tb SET edito=('$E') WHERE signature=$ligne[3]";
devrait être:
$rq = "UPDATE edito_tb SET edito=('". $E ."') WHERE signature='". $ligne[3] ."'";
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 oct. 2005, 16:47

ton code n'est pas tres clair..
$rq = "SELECT titre FROM edito_tb WHERE (titre= '$T' AND signature='$S')";
 51 	         $result = mysql_query($rq);
 52 	         $nb = mysql_num_rows($result);
 53 	         if ($nb == 1)
 54 	         {
 55 	             $ligne = mysql_fetch_array($result, MYSQL_NUM);
 56 	             $rq = "UPDATE edito_tb SET edito=('$E') WHERE signature=$ligne[3]";
ta requete initiale est celle-ci:
SELECT titre FROM edito_tb WHERE (titre= '$T' AND signature='$S')
tu récupère donc uniquement le "titre" en exécutant grace a $result = mysql_query($rq);

Mais ensuite tu fait mysql_fetch_array($result, MYSQL_NUM); sur la meme requete et tu fait appel au champ 3, hors tu n'a que le titre (donc 1 champ)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute