JeuWeb - Crée ton jeu par navigateur
Erreur de syntaxe - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Erreur de syntaxe (/showthread.php?tid=906)

Pages : 1 2


Erreur de syntaxe - mloolm - 05-03-2007

salut
j ai cette erreur
Erreur de syntaxe près de 'WHERE id = '1'' à la ligne 1

mon code est
Code PHP :
<?php 
$pa
= 233;
$id = 1;
mysql_select_db($database_wardog, $wardog);
$query_panouveau = "INSERT INTO pdf_membre(pa) VALUES('".$pa."' ) WHERE id = '$id' ";
$panouveau = mysql_query($query_panouveau, $wardog) or die(mysql_error());

quelqu un peut il me dire ou je me trompe

merci d avance
@++


RE: Erreur de syntaxe - Plume - 05-03-2007

Déjà, je pense que `id` est un entier donc à ne pas mettre entre apostrophes.

Voilà pour toi Smile :
Code PHP :
<?php 
$query_panouveau
= 'INSERT INTO pdf_membre(pa) VALUES(\''.$pa.'\' ) WHERE id = '.$id;



RE: Erreur de syntaxe - icien - 05-03-2007

il n'y a pas de WHERE dans les requêtes INSERT.

sauf dans ce cas :

INSERT INTO Nom_Table
(champ, ..., champN)
SELECT nom_champ, ..., Nom_champN
FROM nom_table
WHERE Condition


RE: Erreur de syntaxe - Plume - 05-03-2007

C'est pas faux non plus ^^ La prochaine fois je regarderais plus loin qu'autour de l'erreur signalée :oops:


RE: Erreur de syntaxe - grouik5962 - 05-03-2007

Salut mloolm,

L'insert ne sert souvent qu'une seule fois (à l'inscription du joueur pour initialiser les tables), et il n'y a pas de where. En revanche, si tu veux remettre à 1 le nombre de PA du joueur alors c'est plutot un UPDATE qu'il te faudra.

Dans le cas de l'insert, précise tous les champs qui vont être renseignés, dans ton cas, à priori :
"Insert into pdf_membre(id, pa) VALUES(".$pa.", ".$id.")";
// Evite les $var entre les "" pour des questions de lisibilité vaut mieux les sortir des ""

Pour ton update se sera plutôt
"Update pdf_membre set pa = ".$pa." where id = ".$id;

Aux erreurs de saisie prêt :-)

A+ et bon courage


RE: Erreur de syntaxe - Plume - 05-03-2007

Comme tu dis - aux erreurs de saisies près.
mloolm, on te fait confiance tu ne copies pas la requète comme telle. Elle contient une erreur, mais pas de syntaxe - la requète est correcte.
Ensuite, j'aimerais savoir à quoi ça vous sert d'utiliser les guillemets pour encadrer vos chaînes de caractères si vous les concaténer quand vous rencontrez une variable. C'est la forme la plus lourde que vous puissiez trouver Smile

'fin bref ^^


RE: Erreur de syntaxe - grouik5962 - 05-03-2007

PErso je fais comme çà car la plupart du temps il y a déjà des ' dans la requête pour les champs texte. Donc je garde les " pour la délimitation mais effectivement d'après ce que j'ai pu lire à droite à gauche dans certains cas ce n'est pas l'écriture la plus rapide en terme d'interprétation.


RE: Erreur de syntaxe - Plume - 06-03-2007

Et bien certes, même si pour l'optimisation {infime, certes, mais tout de même}, je conseille l'utilisation des apostrophes - qui soit dit en passant, peuvent être échappé grâce au caractère `\` dans des chaînes de caractères - il est évidemment possible d'utiliser les guillements. Dans ce cas, la concaténation n'est pas nécessaire, les variables sont repérées & interprétées comme il se doit, donc à bas la concaténation ^^


RE: Erreur de syntaxe - Sephi-Chan - 06-03-2007

Cherchez pas, sprintf() forever !

Avant j'utilisais beaucoup la concaténation.

Code PHP :
<?php 
$var
= 'Ce cheval est ',$couleur,' et rose.';
ou, dans les fonctions (là où l'opérateur virgule (,) ne passe pas) :
Code PHP :
<?php 
exit('Erreur : Le compte '.$rsql['nom'].' n\'existe pas.');

Mais maintenant j'ai plutôt tendance à renoncer à cette minuscule optimisation au profit de la lisibilité.
Code PHP :
<?php 
$var
= "Ce cheval est {$couleur} et rose.";
et respectivement :
Code PHP :
<?php 
exit("Erreur : Le compte {$rsql['nom']} n'existe pas.");

Question de choix Wink. 0.0010 ms de plus au chargement pour une lisibilité accrue ?


Sephi-Chan, ça, c'est dit.

Ps : Si j'aimais les userbars, j'en aurai fait une pour sprintf() :p.


RE: Erreur de syntaxe - Plume - 06-03-2007

Je maintiens ce que je dis. Je préfère de loin l'affichage de la variable avec la coloration syntaxique ... ^^