Page 1 sur 1

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

Posté : 31 oct. 2008, 15:43
par the_grinch
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 =)

Posté : 31 oct. 2008, 15:44
par zeus
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

Posté : 31 oct. 2008, 15:50
par Berzemus
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.

Posté : 31 oct. 2008, 15:52
par the_grinch
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 :)

Posté : 31 oct. 2008, 16:11
par damaskinos
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.

Posté : 31 oct. 2008, 16:59
par the_grinch
oki merci je vais la lire =)