Page 1 sur 1

Parse error que je n'arrive à résoudre

Posté : 26 juil. 2006, 16:57
par jay64
Bonjour à tous,

Quelqu'un pourrait-il m'expliquer pourquoi avec ça :

//mise à 0 de NbPointsJoueursL1_Encours
$query_init = "UPDATE prono_Voteur SET NbPointsJoueursL1_Encours = "0"";
$init = mysql_query($query_init, $connexion_bdd_mysql) or die(mysql_error());
j'ai le message d'erreur suivant:
Parse error: parse error, unexpected T_LNUMBER in /homepages/7/d169003641/htdocs/calculs/compte_nbpoints_1journee.php on line 6
Merci d'avance !

Posté : 26 juil. 2006, 17:01
par aelurus
A mon avis c'est
"0"
tout simplement, php aime pas trop " .....""..."
essaye avec des simples

Posté : 26 juil. 2006, 17:03
par ouckileou
Guillemets simples ou doubles PHP s'en fiche (enfin dans ce cas là), il veut juste qu'ils soient bien utilisés :
$query_init = "UPDATE prono_Voteur SET NbPointsJoueursL1_Encours = "0""; 
Ici le zéro "flotte dans le vide", l'erreur est d'ailleurs très claire : Nombre innatendu"

Il faut inclure le nombre dans la chaîne, tout simplement...
$query_init = "UPDATE prono_Voteur SET NbPointsJoueursL1_Encours = 0"; 

Posté : 26 juil. 2006, 17:13
par jay64
Ok, merci beaucoup encore une fois, ça marche !

Posté : 26 juil. 2006, 19:57
par jay64
désolé d'abuser mais encore un autre d'une autre sorte. Je capte vraiment pas quand faut mettre des guillemets ou pas.
Cette fois ci, c dans une requete SQL que ça capote. A noter que dans PhpMyAdmin, écrite comme ça, elle passe sans aucun pb, et que ça, dans le PHP, ça va plus

$query_ResuMatch ="UPDATE prono_MatchLigue1
SET ResultatMatch =
		CASE 
   			WHEN ScoreEquipeDomReel = ScoreEquipeVisReel THEN "N" 
   			WHEN ScoreEquipeDomReel > ScoreEquipeVisReel THEN "1" 
   			ELSE "2" END";
$ResuMatch = mysql_query($query_ResuMatch, $connexion_bdd_mysql) or die(mysql_error());
me renvoie l'erreur suivante :
Parse error: parse error, unexpected T_STRING in /homepages/7/d169003641/htdocs/calculs/compte_nbpoints_1journee.php on line 9
Merci d'avance !

Jay

Posté : 26 juil. 2006, 20:04
par Cyrano
Bon, réfléchiis quelques instants en observant le code : tu définis la valeur d'une variable PHP : cette valeur est une chaine de caractères, donc logiquement, tu l'as encadrée de guillemets : jusque là, tout va bien. Mais, tu as oublié qu'en ajoutant un guillemet au milieu de ta chaine, PHP va l'interpréter comme le guillemet fermant de fin de chaine.. logique non ?

Comme contrer ça ? Tu as deux solutions:
- Soit tu utilises des apostrophes dans la chaine elle-même;
- Soit tu "échappes les guillemets qui appartiennent en propre à la chaine avec un \

ça va donc donner :
$query_ResuMatch ="UPDATE prono_MatchLigue1
SET ResultatMatch =
        CASE
               WHEN ScoreEquipeDomReel = ScoreEquipeVisReel THEN \"N\"
               WHEN ScoreEquipeDomReel > ScoreEquipeVisReel THEN \"1\"
               ELSE \"2\" END"; 
Par exemple

Posté : 26 juil. 2006, 20:08
par jay64
ok, merci, voilà que je comprend un peu mieux maintenant.

Et en fait, si ça marchait dans le requeteur sql de PhpMyAdmin, c'est simplement parceque je ne définissais pas de guillemets au début et à la fin, lui même sachant le faire et faisant l'interprétation générale de ma chaine de caractères ...

Posté : 26 juil. 2006, 20:11
par Cyrano
Exactement :)

Posté : 26 juil. 2006, 20:13
par jay64
Merci !