erreur sql ?

Invité
Invité n'ayant pas de compte PHPfrance

25 déc. 2006, 21:15

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2006, 21:35

Salut,
Le message indique un souci juste avant le WHERE !!

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

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

Invité
Invité n'ayant pas de compte PHPfrance

25 déc. 2006, 21:38

Aucun rapport parce que c'est juste moi qui me suit trompé en le recopiant sur le forum !

Je ne trouve toujours pas :cry:

Invité
Invité n'ayant pas de compte PHPfrance

25 déc. 2006, 21:59

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 !

HD
Mammouth du PHP | 1181 Messages

25 déc. 2006, 22:09

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 " :?
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2006, 22:30


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

Invité
Invité n'ayant pas de compte PHPfrance

25 déc. 2006, 22:45

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 :?:

Invité
Invité n'ayant pas de compte PHPfrance

25 déc. 2006, 22:50

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2006, 23:18

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 ();  
}
?>

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2006, 23:18

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é). ;)

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