JeuWeb - Crée ton jeu par navigateur

Version complète : Requête : Warninig [reglé]
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour,

Dans mon fichier je fait deux requêtes

Code PHP :
<?php 
id
=1;

$sql_principal = mysql_query("SELECT * FROM joueurs WHERE id=' . id . '") or die(mysql_error());

$sql_ressources = mysql_query("SELECT * FROM ressources WHERE id=' . 1 . '") or die(mysql_error());





Ceci m'affiche

Citation :Champ 'id' inconnu dans where clause




Pouvez vous m'aider merci ?
$id=1;

$sql_principal = mysql_query("SELECT * FROM joueurs WHERE id=' .$id . '") or die(mysql_error());

$sql_ressources = mysql_query("SELECT * FROM ressources WHERE id=' . 1 . '") or die(mysql_error());
pardon kassak je me suis trompé ma vrai requête est celle la et sa ne marche toujours pas Sad

Code PHP :
<?php 
$sql_principal
= mysql_query("SELECT * FROM joueurs WHERE id=' . $id . '") or die(mysql_error());

$sql_ressources = mysql_query("SELECT * FROM ressources WHERE id='. $id . '") or die(mysql_error());
ou c'est un chiffre entier

je dois faire comment pour y remédier ?
gaby a écrit :pardon kassak je me suis trompé ma vrai requête est celle la et sa ne marche toujours pas Sad

Code PHP :
<?php 
$sql_principal
= mysql_query("SELECT * FROM joueurs WHERE id=' . $id . '") or die(mysql_error());

$sql_ressources = mysql_query("SELECT * FROM ressources WHERE id='. $id . '") or die(mysql_error());
Ca sert à rien de concaténer si tu utilises les doubles quotes.

Ainsi ces requêtes conviennent aussi bien (plus lisible) :
Code PHP :
<?php 
$sql_principal
= mysql_query("SELECT * FROM joueurs WHERE id=$id") or die(mysql_error());

$sql_principal = mysql_query("SELECT * FROM ressources WHERE id=$id") or die(mysql_error());

Si tu as Champ 'id' inconnu dans where clause en retour, c'est que le champ id n'existe pas dans ta table, du moins pas de type VARCHAR, TEXT, BLOB ou CHAR.


Sephi-Chan
Salut!

Est ce que je pourrais connaitre la différence entre :

Code :
$sQueryPlayer='SELECT * FROM joueurs WHERE id='.$id;
$rPlayer = mysql_query($sQueryPlayer) or die(mysql_error());

et...

Code :
$QueryPlayer=mysql_query("SELECT * FROM joueurs WHERE id='".$id."'");

Est ce que c'est juste pour une question de lisibilité ou plutôt de rapidité dans l'execution de la requête ?

Wess
C'est pour la lisibilité et pour débuguer plus facilement en affichant la requête. Mais on peut mieux faire niveau lisibilité, en utilisant sprintf().


Sephi-Chan
merci sephi-chan sa marche
Je t'en prie, on est là pour ça. Wink

Il ne faut entourer les variables par des guillemets simples ' que quand ce sont des chaînes de caractères. Jamais pour les nombres.


Sephi-Chan
le problème ici n'est pas du typage, le problème c'est :
_ concaténation avec ' et " mélangés n'importe comment
_ manière d'écrire le code "sale", ne permettant pas un debuggage ( concaténation pas hyper lisible, requête impossible à afficher pour debug )

debug inutile pour moi aussi, un rappel vers de bonnes habitudes + lock aurait fait l'affaire.

A+

Pascal
Pages : 1 2