Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 06-01-2005 12:44:39

chino18
Membre
Date d'inscription: 06-01-2005
Messages: 3

probleme de requete sql

Bonjour tout le monde!
Je suis confronté à un problème quelque peu énervant  :evil: .

j'ai une fonction qui vérifie les données envoyées depuis un formulaire.

Code:

/*fonction qui vérifie que le login et le mot de passe sont exacts*/
function verifExistence(){
    $coderetour=0;
    $requete="SELECT login,pass FROM profil WHERE login='$this->login'";
    $resultat=mysql_query($requete);
    echo $resultat;
    if (!$resultat){
       exit('invalid query : ' .mysql_error());
    }
    else
    {
        echo "test1";
        while($line=mysql_fetch_row($resultat)){                
             if($line[0]!=$this->login)
                  $coderetour=1;
             if($line[1]!=$this->pass)
                $coderetour=2;
        }
        mysql_free_result($resultat);
    }
    
      switch ($coderetour){
           case 0: return 0;break;
           case 1: return 1;break;
           case 2: return 2;break;
    }  
}

Tout marche bien si les $user->login et $user->pass correspondent effectivement à un enregistrement.
Mais si je met des valeurs bidon, le while n'est pas exécuté et donc la fonction me retourne 0.
Et la je ne vois vraiment pas ou si situe la couille  sad .
De l'aide pleaaaaase!!!

J'ai remaqué que dans tous les cas, si j'affiche $resultat, il me sort Resource id #5.

Hors ligne

 

#2 06-01-2005 13:27:43

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: probleme de requete sql

il est normal que $result te retourne un ressource id, étant donné qu'il est défini par un mysql_query.
il faut le formater avec mysql_fetch_array pour afficher quelque chose wink

ce que tu peux faire
c'est :

Code:

$nbre = mysql_num_rows($resultat);
if ($nbre != '0') {
on execute le login
}

c'est à dire que si la requete ne retourne aucun résultat (ce qui est le cas lorsque tu a un user fictif)
tu arrete tout (mysql_num_rows retournant le nombre de résultats obtenus par la requete)

Hors ligne

 

#3 06-01-2005 17:01:15

chino18
Membre
Date d'inscription: 06-01-2005
Messages: 3

Re: probleme de requete sql

merci kazhar!
Je vais essayer ca.
Jsuis un vrai boulet,  j'y avait pas pensé   lol

Hors ligne

 

#4 06-01-2005 17:01:57

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: probleme de requete sql

c'est à cela que sert le forum hein  wink

Hors ligne

 

#5 06-01-2005 17:13:10

chino18
Membre
Date d'inscription: 06-01-2005
Messages: 3

Re: probleme de requete sql

mais je comprend pas toujours pas pourquoi $resultat contient un ressource id meme quand la requete sql ne trouve aucun enregistrement correspondant.

Hors ligne

 

#6 07-01-2005 11:38:05

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: probleme de requete sql

tout simplement parce que $result est la variable retournée par ton mysql_query
afin d'obetnir les valeurs de ta base, il faut que tu fasse un mysql_fetch_array  wink

Hors ligne