Différences dans les versions de Mysql ??

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Différences dans les versions de Mysql ??

Message le Jeu Sep 15, 2005 13:38

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...


Phix
WRInaute impliqué
WRInaute impliqué
 
Messages: 420
Inscription: Mar Juin 15, 2004 22:05

Message le Jeu Sep 15, 2005 13:49

L'erreur vient de la requête Mysql exécutée dans cette fonction:

Code: Tout sélectionner
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: Tout sélectionner
mysql_error()

qui affiche l'erreur générée par l'exécution de la requête

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Message le Jeu Sep 15, 2005 15:58

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


ortolojf
WRInaute accro
WRInaute accro
 
Messages: 1192
Inscription: Mer Aoû 14, 2002 13:30

Message le Jeu Sep 15, 2005 16:39

cdelaunay a écrit: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

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Message le Jeu Sep 15, 2005 16:53

Pourquoi pas???

J'essaie et je te dis ..

Merci ...


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Jeu Sep 15, 2005 16:54

cdelaunay a écrit: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: Tout sélectionner
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: Tout sélectionner
$variablequiaexecutélarequete['NumArt']
etc


Phix
WRInaute impliqué
WRInaute impliqué
 
Messages: 420
Inscription: Mar Juin 15, 2004 22:05

Message le Jeu Sep 15, 2005 17:49

Voici la requête corrigée:

Code: Tout sélectionner
$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: Tout sélectionner
$chaine = "debut de chaine ${tableau['cle']} fin de chaine";


soit:

Code: Tout sélectionner
$chaine = "debut de chaine ".$tableau['cle']." fin de chaine";

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Message le Ven Sep 16, 2005 10:13

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...

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Ven Sep 16, 2005 10:28

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 ?

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Ven Sep 16, 2005 10:31

doic a écrit:[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']}

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Message le Ven Sep 16, 2005 16:02

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: Tout sélectionner
$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...

cdelaunay
Nouveau WRInaute
 
Messages: 6
Inscription: Jeu Sep 15, 2005 13:29

Message le Ven Sep 16, 2005 16:06

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...


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités