Page 1 sur 1

erreur sql ?

Posté : 25 déc. 2006, 21:15
par Invité
Bonjour,

y'a un truc que je ne comprend pas !

En effet,j'ai une erreur sql qui se produit mais pas tout le temps,1 fois sur 10 environ ?

Voici l'erreur :
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 'WHERE id= 47' at line 1
Et cette erreur est apparu depuis que j'y est mi ce script :

<?php 
$argent = explode('.', $a[$be]); 
$points = $argent[0]; 
$aqw = "UPDATE membres SET commande = commande + $argent WHERE id= $id";
$req = mysql_query($aqw) or die('Erreur SQL !<br />'.$aqw.'<br />'.mysql_error());
mysql_close ();  
?>
Il y a visiblement quelques choses qui coince quelques part mais quoi ?

Une ptite aide serait la bienvenue :wink:

Posté : 25 déc. 2006, 21:35
par Truc
Salut,
Le message indique un souci juste avant le WHERE !!

$argent ne devrait pas etre $points ? :wink:

Posté : 25 déc. 2006, 21:38
par Invité
Aucun rapport parce que c'est juste moi qui me suit trompé en le recopiant sur le forum !

Je ne trouve toujours pas :cry:

Posté : 25 déc. 2006, 21:59
par Invité
ce qui me turlupine,c'est que c'est erreur n'est pas présente en permanence !

Elle n'arrive que de temps en temps...bizarre !

Une erreur php est présente en permanence théoriquement sauf si on la répare..?

oh la la,help,j'y comprend rien !

Posté : 25 déc. 2006, 22:09
par HD
ou l'erreur ne se présente que quand l'une des variables utilisées dans ta requête sql contient des caractères qui faussent la requête genre ' ou " :?

Posté : 25 déc. 2006, 22:30
par Truc

Posté : 25 déc. 2006, 22:45
par Invité
bonjour et joyeux noel :D

je me trompe peut etre mais $argent est un tableau
$argent = explode('.', $a[$be]); 
et dans ta requete tu fait apel $argent et non $argent[0]
$aqw = "UPDATE membres SET commande = commande + $argent WHERE id= $id";
je ne sait pas s'il est possible d'inserer un tableau dans une base :?:

Posté : 25 déc. 2006, 22:50
par Invité
argent est un tableau ? je dirait plutot du pognon moi :lol:

en tout cas,merci a vous tous et plus particulièrement a HD qui ma mi sur la bonne voie ! J'ai rajouté 2 ( ' ) sur chaque variable de l'update et l'erreur occasionnel ma dit adieu :wink:

Posté : 25 déc. 2006, 23:18
par Truc
A la base l'erreur venait donc du faite qu'une des variables était vide.

Faudrait tester avant l'exécution :
<?php 
if($argent = explode('.', $a[$be]) && isset($id) )
{
   $points = $argent[0]; 
   $aqw = "UPDATE membres SET commande = commande + ".$points ." WHERE id = ".$id;
   $req = mysql_query($aqw) or die('Erreur SQL !<br />'.$aqw.'<br />'.mysql_error());
   mysql_close ();  
}
?>

Posté : 25 déc. 2006, 23:18
par Truc
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)