JeuWeb - Crée ton jeu par navigateur
Erreurs dans une ligne sur des requêtes SQL - 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 : Erreurs dans une ligne sur des requêtes SQL (/showthread.php?tid=1854)

Pages : 1 2


Erreurs dans une ligne sur des requêtes SQL - gameprog2 - 30-09-2010

salut,
j'ai cherché sur le net pour l'erreur que je reçois de php, mais je n'ai pas compris pourquoi j'ai cette erreur, donc si vous pouvez m'aider Wink
J'ai vu que c'était une erreur de syntaxe mais pourquoi l'erreur ?

L'erreur survient au moment où j'essaie de m'inscrire au jeu, et c'est :

Parse error: syntax error, unexpected T_IS_NOT_EQUAL in C:\Program Files\EasyPHP-5.3.3\www\inscrit.php on line 100

L'erreur se manifeste dans la ligne du if...


/* Teste si le pseudo existe dans la DB */
$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = $pseudo");
if (!=$result)
{
// Inscription du joueur dans la DB.
}


EDIT :

C'est bon, j'ai trouvé merci Wink
Il faut mettre :
$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = '$speudo');

je teste !

EDIT :

Mince :/
Toujours pas :/


RE: erreur php/mysql dans une ligne ! - Scrat - 01-10-2010

Peut être une connerie que je vais dire mais, tu es certain de ta syntaxe de :
if (!=$result)

Ca serait pas un if($result) à la place. Enfin je n'ai jamais utilisé l'opérateur dans ce sens là.

Soit $result!=0 soit !$result ou alors $result tout court.

Mais !=$result je ne crois pas.


RE: erreur php/mysql dans une ligne ! - gameprog2 - 01-10-2010

moi je met != quand je veux tester l'inégalité à la place de l'égalité mais normalement c'est pareil, suffit de placer son code au bon endroit, enfin en javascript c'est comme ça. (pas pour de la DB)

Mais je vais tester comme tu dis pour voir !

Mais comment je peux tester que le résultat est faux ?

EDIT :
Ah oui j'inverse mes code, ok


RE: erreur php/mysql dans une ligne ! - niahoo - 01-10-2010

if(!$result) tout simplement.

si result renvoie false alors !result renvoie true et donc le if est validé.

ceci étant dit, si la requete s'effectue bien, même s'il n'y a pas ce pseudo dans la base, ta variable result vaudra vrai. (à confirmer, je ne suis pas sur)


RE: erreur php/mysql dans une ligne ! - Scrat - 01-10-2010

C'est bien ce qui me semble oui

if(!$result)


RE: erreur php/mysql dans une ligne ! - gameprog2 - 01-10-2010

Citation :if(!$result) tout simplement.
Ah c'est vrai Niahoo Wink j'avais oublié ça, mais bon j'ai fait en inversant mes codes et en mettant juste le : if($result)...


Je crois que c'est bon cette fois car il me donne une nouvelle erreur dans une ligne plus loin dans le programme Wink
Je vais voir ce que c'est et si j'arrive pas à savoir je ferais appel à vous les pros Wink

Merci pour l'aide aussi Wink !!!
Ok, l'erreur dernière provient de :
$erreurs=$errorsMSG[];

Parce que je croyais que c'était comme ça qu'on mettait le contenu d'un tableau dans une variable !

En fait j'ai cherché sur plusieurs liens du net et je ne trouve pas comment faire :/

EDIT :

C'est bon, j'ai trouvé en faisant des tests, j'ai supprimé les [] et ça marche pour copier le contenu d'un tableau dans une variable.
Merci !!!


RE: erreur php/mysql dans une ligne ! - Argorate - 01-10-2010

C'est une blague?

l'erreur me saute aux yeux...

Citation :$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = $pseudo");
Normal... il te manque des guillemet autour de $pseudo car c du string.

Citation :$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = '$speudo');

il te manquerait pas par hasard le " manquant ?

$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = '$speudo'");

Fait attention ^^

tu codes sous bloc note ou quoi? un bon éditeur et tu l'aurais vu avec la coloration syntaxique...


RE: erreur php/mysql dans une ligne ! - niahoo - 01-10-2010

Par contre la logique de ton code est fausse. Exécute ça


<?php

$idc = mysql_connect('localhost', 'root', 'qzdqzd');
mysql_query('USE tests', $idc);
$sql = "SELECT * FROM joueurs WHERE pseudo = 'afturgurgluk'"; // renvoie 0 lignes
$result = mysql_query($sql, $idc);
var_dump( (bool) $result );
var_dump(mysql_num_rows($result));



RE: erreur php/mysql dans une ligne ! - gameprog2 - 01-10-2010

Quand on met des guillemets pour une chaine, il faut mettre les accolades d'après ce que j'ai appris sur le net.
Mon code fonctionne c'est bon merci ^^

EDIT :
Voilà, tu avais raison niahoo, la requete donne toujours true !
c'est pour ça que je croyais que mon code marchait :/
Par contre ton idee de code faut que je la bûche sur le net car j'y comprend rien :/


Tu parles du guillemet de fin Argorate ? il y est regarde le premier post.

Oulaaaaa je viens de lire ça :
Citation :query : La chaîne de requête ne doit pas se terminer par un point-virgule.

En cliquant sur le lien query :

$result = mysql_query("SELECT * FROM joueurs WHERE pseudo = '$speudo'");



RE: erreur php/mysql dans une ligne ! - Globe - 01-10-2010

(01-10-2010, 12:35 PM)gameprog2 a écrit : Quand on met des guillemets pour une chaine, il faut mettre les accolades d'après ce que j'ai appris sur le net.

Euh aucun rapport.