Controle dans bdd !!

Résolu
kodiask Messages postés 158 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 4 novembre 2007 - 27 juil. 2006 à 14:08
kodiask Messages postés 158 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 4 novembre 2007 - 27 juil. 2006 à 16:15
voilà j'ai créer un espace membre simple, sur la page il y a 2 champs


$mail et $mdp


lorsque l'on clic sur entrer cela nous envoi sur la page
d'enregistrement, qui verifie si le mail existe ou pas, si il existe
message d'erreur sinon le mail est enregistrer.



le problème cette page m'enregistrer le mail même si celui-ci existe déjà...


(seul le premier mail de la liste de la bdd est marquer déjà utilisé)
alors je comprend pas pourquoi il me controle pas toute la liste !


voici le code de ma page
<hr size="2" width="100%" /><?

$msg= '



<html>


<head>


<style type="text/css">


<!--


body {


    margin-left: 0px;


    margin-top: 0px;


    margin-right: 0px;


    margin-bottom: 0px;


    background-image: url(back.jpg);


}


.back{


width:750px;


background-color:#FFFFFF;


margin-left:20%;


border-left: 1px dashed #A1D2F1;


border-right: 1px dashed #A1D2F1;


border-bottom: 1px dashed #A1D2F1;


border-top: 1px dashed #FFFFFF;


padding-top:0px;


margin-top:0px


}


.Style1 {color: #A1D2F1}


.Style4 {


    font-size: 12px;


    font-family: Verdana, Arial, Helvetica, sans-serif;


}


.Style5 {


    font-size: 9px;


    font-family: Verdana, Arial, Helvetica, sans-serif;


}


.Style6 {


    font-family: Verdana, Arial, Helvetica, sans-serif;


    font-weight: bold;


    font-size: 10px;


    color: #FF0000;


}


-->


</style>


</head>








  http://kodium.free.fr/titanium/



mail d&eacute;j&agrave;
utilis&eacute;, ou champs mal renseign&eacute;s !
   


  back



   


















</html>


';


$email = $_POST['mail'];


$aroba = strpos($email,"@");


$pt = strpos($email,".");


if($mail=="" || $mdp=="" ||( $aroba=='' ) OR ( $pt== '')  ) {

echo $msg;


   

}else{

$db = mysql_connect('localhost', '**', '**');


mysql_select_db('kodium',$db);



$ql = "SELECT * FROM ti_players ";


$eq = mysql_query($ql) or die('Erreur SQL !
'.$ql.'
'.mysql_error());


$data = mysql_fetch_assoc($eq);


       



        if($email==$data['mail']){


       


        echo $msg;


       


       


        }else{


        $level="index.php";



        $sq = "INSERT INTO ti_players (id,mail,mdp,level) VALUES('','$mail','$mdp','$level')";

        $re = mysql_query($sq) or
die('Erreur SQL !
'.$sql.'
'.mysql_error());


        echo 'loaded';


       


        }


       


       

}?>

<hr size="2" width="100%" />J'ai tout essayé je n'arrive vraiment pas a comprendre pourquoi !

merci

4 réponses

cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
27 juil. 2006 à 14:25
salut
ta requete recupere toute ta table ti_players et donc pour chaque enregistrement tu test si le mail saisi existe ...

je pense que ca fonctionnerai mieux avec :

$req = "SELECT id FROM ti_players WHERE mail='".$email."'";
$res = mysql_query($req);
if (mysql_num_rows($res) == 1)
{
    //le mail existe
}
else
{
    // mail n'existe pas
}
3
kodiask Messages postés 158 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 4 novembre 2007
27 juil. 2006 à 16:15
je rajouterai juste sur la réponse ajouter que, si le compte n"existe
pas il n'aurai pas de 0 mais une reponse vide d'après ce que j'ai pu
voir,

donc j'ai remplace le
if (mysql_num_rows($res) == 1)

par
if (mysql_num_rows($res) != 0)


et ca marche !

merci a tous !
3
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
27 juil. 2006 à 14:23
$data = mysql_fetch_assoc($eq);
if($email==$data['mail'])
Voilà l'erreur. Dans ce cas là tu vérifies juste le premier résultat de la requête, or il te faut vérifier TOUS les résultats, donc créer une boucle !

while($data = mysql_fetch_array($eq){
if($email == $data['email']){
echo $msg;
}
else{....
}
}
0
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
27 juil. 2006 à 14:34
oui évidement lol
0