Problème de requête update avec php mysql

Résolu
Signaler
Messages postés
4
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
9 janvier 2005
-
Messages postés
4
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
9 janvier 2005
-
Bonjour, j'ai un problème d'UPDATE en php mysql, je ne le comprends pas
voilà le bout de code:

je veux mettre la table ressources à jour, elle contient comme champs: id nom left top lien

for ($i=0;$i<count($tableau);$i=$i+3)
{
//echo "indice =".$i." ".$tableau[$i]."
";
$id=$tableau[$i];
$gauche=$tableau[$i+1];
$sommet=$tableau[$i+2];
//test sur les variables
echo "id =".$id." gauche= ".$gauche."sommet=".$sommet."
";
$requete="UPDATE ressources SET left='$gauche', top='$sommet' WHERE id ='$id'";
mysql_query($requete);
echo mysql_error();
echo "
";
}

il m'affiche une erreur de syntaxe je ne la vois pas:
id =1 gauche= 687sommet=113
Erreur de syntaxe près de 'left='687', top='113' WHERE id ='1'' à la ligne 1
id =2 gauche= 677sommet=362
Erreur de syntaxe près de 'left='677', top='362' WHERE id ='2'' à la ligne 1
id =3 gauche= 10 sommet=100
Erreur de syntaxe près de 'left='10 ', top='100 ' WHERE id ='3'' à la ligne 1
merci pour toute aide

7 réponses

Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
N'appelle pas ton champs left ? c'est un mot clé pour LEFT JOIN ...
donc évite left et top aussi au cas (mais top ne devrait pas etre un
mot clé)

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut ;-)



Au passage une bonne optimisation :

$nb=count($tableau);

$requete_mysql="UPDATE ressources SET left='$gauche', top='$sommet' WHERE ";


for ($i=0;$i<$nb;$i=$i+3)
{
$id=$tableau[$i];
$gauche=$tableau[$i+1];
$sommet=$tableau[$i+2];


echo 'd =',$id,' gauche= ',$gauche,'sommet=',$sommet,'
';



if($i==0)

{

$requete_mysql.="id='$id'";

}

else

{

$requete_mysql.=" AND id='$id'";

}
}


//connexion à la base

a faire

//requete

$requete=mysql_query($requete_mysql) OR die('Erreur MySQL');

//deconnexion

a faire

//ensuite ton traitement...


a faire



a ++
Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
4
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
9 janvier 2005

bonjour, merci pour vos réponses,
j'ai copié collé la requête modifier dans mysql admin et ça marche !!
mais je ne comprends pas pourquoi.
a part les nouveaux apostrophres c'est la même.mysql_query("UPDATE `ressources` SET `left` '$gauche' ,`top` '$sommet' WHERE `id` = '$id' ");
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut ;-)



Bah écoute c'est ce qu'on appelle un mystère lol



Tu peux cliquer sur "réponse acceptée" stp ?



merci et a++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
4
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
9 janvier 2005

ok c'est cliqué,
il y a beaucoup de voies qui sont impénétrables
merci
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
J'avais expliqué que c'était left qui était un mot clé... mais bon tu
n'as pas l'air à avoir lu mon post... en le mettant entre apostrophe
(ou délimiteur) tu le forces à etre un champ...

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
Messages postés
4
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
9 janvier 2005

Bonjour Grenard,
désolé , je l'avais lu et tu avais raison,
j'ai cliqué sur le premier truc venu sans réfléchir,
merci et salut
métapat
ps j'ai modifié mon click