Verifier une entrée, il me fait n'impp!!

Eléphant du PHP | 419 Messages

31 oct. 2008, 15:43

Bonjour,
Voila je fais un petit site avec un espace membre,
je voudrais vérifier si l'utilisateur existe dans la base ou pas alors voici mon code :

Code : Tout sélectionner

$verifuser = mysql_query("SELECT COUNT(*) FROM registre WHERE user='$user'"); if ($verifuser == "0") { echo "Cet utilisateur n'existe pas."; } else { echo "ok"; }
Dans ma table, il n'y a que l'utilisateur "pierre" !!
Je rentre mes infos dans le formulaire et je fais OK, ( en mettant "aze" comme nom d'utilisateur définit par la variable $user )
Le COUNT(*) me renvois 0 quand je le fais dans phpmyadmin mais la quand je fais

Code : Tout sélectionner

echo $verifuser;
, il y a Resource id #5.
Et même, l'user n'existe pas mais il me met OK !!
Comment ça se fait ??
Merci =)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

31 oct. 2008, 15:44

parce que mysql_query te retourne une instance et qu'il faut que tu parcours cette instance pour récupérer le count ...

Pourtant, il me semblait que tu avais déjà fait une requête SQL :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4039 Messages

31 oct. 2008, 15:50

peut-être parce que mysql_query ne renvoit pas de résultat, mais plutôt un lien vers une ressource (pour les requêtes select entre-autres).

Un passage à la doc l'explique fort bien:
http://be.php.net/mysql_query

Berze, interpréteur de documentation.

edit: grilled by ze zeus.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 419 Messages

31 oct. 2008, 15:52

Ahh ouiii mince, pfiu ça fait longtemps que j'ai pas codé =)

J'ai fait ça :

Code : Tout sélectionner

$verifuser = mysql_query("SELECT COUNT(*) AS nb_user FROM registre WHERE user='$user'"); $verifuser = mysql_fetch_array($verifuser); $verifuser = $verifuser['nb_user']; if ($verifuser == "0") { echo "Cet utilisateur n'existe pas."; } else { echo "ok"; }
Et maintenant ça fonctionne, mais une autre méthode pour ne pas passer par AS et $verifuser['nb_user']; ?
Merci :)

Eléphant du PHP | 288 Messages

31 oct. 2008, 16:11

Et maintenant ça fonctionne, mais une autre méthode pour ne pas passer par AS et $verifuser['nb_user']; ?
tu pourrais faire ceci :

ta requête
$verifuser = mysql_query("SELECT COUNT(*)  FROM registre WHERE user='$user'"); 
Pour récupérer
$verifuser = mysql_fetch_row($verifuser); 
L'accès a la réponse
 $verifuser = $verifuser[0]; 
je crois que tu devrais bien regarder la docs comme te la dis berzemus, tu pourras voir les autres façon de parcourir ton instance.

Eléphant du PHP | 419 Messages

31 oct. 2008, 16:59

oki merci je vais la lire =)