Différences dans les versions de Mysql ??

Nouveau WRInaute
Bonjour à tous,

Je rencontre un problème dans un script tout bête, je poste donc ici, avec l'idée d'aider aussi ceux qui rencontreraient ce même problème.

Voilà le message :

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.

Je pense avoir cerné le pb sur cette fonction :

function send_sql($db, $sql) {
if ($res=mysql_db_query($db, $sql)) { return $res;
}
echo mysql_error();
exit;
}

Quelqu'un me met sur la voie ??

Merci d'avance...
 
WRInaute occasionnel
L'erreur vient de la requête Mysql exécutée dans cette fonction:

Code:
mysql_db_query($db, $sql)

La requête dans $sql doit avoir une mauvaise syntaxe, si tu pouvais nous la montrer pour qu'on puisse l'analyser.

Pour info, c'est:
Code:
mysql_error()
qui affiche l'erreur générée par l'exécution de la requête
 
Nouveau WRInaute
La voila...

$sql="SELECT NumArt AS '$w[NumArt]', PrixArt*0.16 AS '$w[Tax]', QteArt AS '$w[Number]', TotalArt As'$w[Sum]' FROM listecommande AS A , article AS B WHERE A.NumArt=B.NumArt AND NumClient=$KID AND NumCde=$NumCde";

Après l'avoir lue et relue, et re re lue, je vois toujours pas...
Merci à toi, ... je dois être trop fatigué....
 
WRInaute accro
cdelaunay a dit:
La voila...

$sql="SELECT NumArt AS '$w[NumArt]', PrixArt*0.16 AS '$w[Tax]', QteArt AS '$w[Number]', TotalArt As'$w[Sum]' FROM listecommande A , article B WHERE A.NumArt=B.NumArt AND NumClient=$KID AND NumCde=$NumCde";

Après l'avoir lue et relue, et re re lue, je vois toujours pas...
Merci à toi, ... je dois être trop fatigué....

Bonjour

Sans AS après les noms des tables, celà devrait passer ?

Amicalement.

Jean Francois Ortolo
 
WRInaute impliqué
cdelaunay a dit:
La voila...

$sql="SELECT NumArt AS '$w[NumArt]', PrixArt*0.16 AS '$w[Tax]', QteArt AS '$w[Number]', TotalArt As'$w[Sum]' FROM listecommande AS A , article AS B WHERE A.NumArt=B.NumArt AND NumClient=$KID AND NumCde=$NumCde";

Après l'avoir lue et relue, et re re lue, je vois toujours pas...
Merci à toi, ... je dois être trop fatigué....
Le terme souligné est à remplacer par
Code:
TotalArt  AS '$w[Sum]'

Mais de toute façon je ne suis pas sûr qu'une requête sql puisse construire des variables php comme tu le fais ;-)
Garde juste ce qui est entre crochets, sans guillemet, et récupère-les après avec
Code:
$variablequiaexecutélarequete['NumArt']
etc
 
WRInaute occasionnel
Voici la requête corrigée:

Code:
$sql="SELECT NumArt AS '".$w['NumArt']."', PrixArt*0.16 AS '".$w['Tax']."', QteArt AS '".$w['Number']."', TotalArt As'".$w['Sum']."' FROM listecommande AS A , article AS B WHERE A.NumArt=B.NumArt AND NumClient=$KID AND NumCde=$NumCde";

Pour insérer la valeur d'un tableau dans une chaîne en php il faut faire soit:

Code:
$chaine = "debut de chaine ${tableau['cle']} fin de chaine";

soit:

Code:
$chaine = "debut de chaine ".$tableau['cle']." fin de chaine";
 
Nouveau WRInaute
Phix :

Je suis soufflé : j'y croyais dur dur.... et çà marche pô...
désolé...

/*
Et j'ai vu ton site : scié... magnifique...
Je suis fanatique de Hummer en plus (15 ans d'Afrique...)
*/

tu veux bien me donner une autre idée aussi bonne ??

Merci...
 
WRInaute passionné
pourquoi tu ne ferai pas un petit echo($sql) pour voir ce que tu injecte à ton serveur MySQl.
Est-ce que tu pourrais poster le résultat du echo ?
 
WRInaute passionné
doic a dit:
[quote="cdelaunay"
Mais de toute façon je ne suis pas sûr qu'une requête sql puisse construire des variables php comme tu le fais ;-)

si c possible, des constructions du type :
$sql = "SELECT $foo FROM {$this->tblName} etc....." ;

c vrai que j'ai jamais essayé averc des variables non objet, mais tu peux tester en mettant tes variables entre acoolades pour voir {$foo['bar']}
 
Nouveau WRInaute
Merci à Phix et à spidetra,
Qui m'ont bien aidés avec les astuces qi'ils m'ont donnés.
J'avais beaucoup d'erreurs dans ce script, et je donne ici la solution qui marche :
Code:
$sql="SELECT A.NumArt AS '".$w['ArtNr']."', PrixArt AS '".$w['Tax']."', QteArt AS  '".$w['Number']."', TotalArt AS '".$w['Sum']."' FROM listecommande AS A , article AS B WHERE A.NumArt=B.NumArt AND A.NumClient=$KID AND A.NumCde=$AN";
Il faut donc bien qualifier les variables aux noms communs aux deux tables, même avant de déclarer la deuxième table...

Voilà, encore merci à tous...
 
Nouveau WRInaute
AAAAARGH...
J'ai oublié :

Merci à Doic, aussi...

Allez voir son site : vraiment super et très pro...

On peut considérer ce topic comme résolu...

Je vous laisse le faire, si qq'un voulait rajouter qq chose...
 
Discussions similaires
Haut