Resultat de requète sql sur php ! [Résolu/Fermé]

Signaler
Messages postés
353
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
7 mars 2017
-
Messages postés
353
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
7 mars 2017
-
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

Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
89
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
89
c'est quoi l'erreur généré par ton code ?
Juste pour info dans quel contexte utiliser execRequete ? Je connais pas
Messages postés
353
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
7 mars 2017
60
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
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;
Messages postés
353
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
7 mars 2017
60
Merci.