Resultat de requète sql sur php !

Résolu/Fermé
x11r6 Messages postés 353 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 7 mars 2017 - 27 août 2009 à 22:58
x11r6 Messages postés 353 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 7 mars 2017 - 31 août 2009 à 07:45
Bonjour,

N'étant pas très bon programmeur, je suis actuellement confronté à un soucis ! :
je souhaite à l'aide de ce script vérifier d'un utilisateur n'est pas déjà dans la bdd
je fais donc un :
SELECT count(*) FROM users WHERE mail='" . $mail ."
pour compter le nombre de ligne qui comporte c'est adresse
si c'est différent de 0 l'utilisateur est dajà dans la base et je lui demande de s'authentifier
sinon on poursuit le script...

le résultat est stocké dans la variable $result que je teste par if($result<>"0") mais a priori c'est là que sa bloque....enfin je pense....

Une idée ?

code si dessous.

function Verifierusers($mail,$connexion)
{
$requeteuser = "SELECT count(*) FROM users WHERE mail='" . $mail ."'";

$result = ExecRequete ($requeteuser, $connexion);
if($result<>"0")
return true;
else
return false;
}

$adresse=htmlentities($_POST['mail']);
if(Verifierusers($adresse,$connexion))
echo '<p>Vous avez déjà un compte... merci de vous identifier</p>';
exit;
else
echo '<p>Votre adresse est valide.</p>';


$verifuser = Verifierusers ( $_POST[mail],$connexion);


Cordialement

5 réponses

moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
30 août 2009 à 00:00
Je ne sais pas ce que vous entendez par chiffre, et sans contredir le père, à mon sens ceci SELECT count(*) FROM users WHERE mail='" . $mail ." renvoi un entier (0 ou n).

Là si tu veux faire un test par rapport au résultat de la requete tu peux compter le nombre de lignes retournées (mysql_num_rows).

$sql = mysql_query("SELECT COUNT(*) AS Nb FROM TAB);
			$nbNuplets = mysql_num_rows($sql);
			$nuplet = mysql_fetch_array($sql);
				if($nbNuplets > 0){
					//ton traitement si vrai
				}else{
					//ton traitement si faux
				}
1
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
28 août 2009 à 06:20
c'est quoi l'erreur généré par ton code ?
Juste pour info dans quel contexte utiliser execRequete ? Je connais pas
0
x11r6 Messages postés 353 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 7 mars 2017 59
28 août 2009 à 12:24
aucune érreur généré en faite

ExecRequete est un simple script qui execute une requete et renvoi le résultat dans un return.

lorsque j'éffectue cette requete :

SELECT count(*) FROM users WHERE mail='" . $mail ."

le résultat est un chiffre ???

j'ai du mal a l'évaluer...dans if($result<>"0")

cordialement
0
Bonjour

Non, le résultat d'une requête n'est pas un chiffre, c'est un truc qui s'appelle 'resource'.
Tu t'attends à un seul nombre mais en général, une requête peut renvoyer plusieurs lignes comprenant plusieurs champs ( SELECT champ1, champ2 etc...). C'est pour ça que ce n'est pas un simple nombre.

Tu extrais de cette resource une ligne de résultats grâce à une fonction comme (version mysql)
$ligne = mysql_fetch_row($result);

(si tu avais plusieurs lignes de résultats, tu pourrais les balayer toutes avec une boucle while par exemple, mais toi tu en as une seule)

$ligne obtenu est un tableau. La réponse que tu cherches (ici il y en a une seule car tu SELECT une seule chose) est dans l'indice 0

if($ligne[0] <> 0)
return true;
else
return false;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
x11r6 Messages postés 353 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 7 mars 2017 59
31 août 2009 à 07:45
Merci.
0