Page 1 sur 1

rechercher dans la bdd si pseudo est deja existant

Posté : 29 sept. 2005, 10:39
par castelli
(re)Bonjour tout le monde ,

J'aurais a nouveau une petite question.

Dans un de mes formulaire d'inscription , j'aimerais verifier si le pseudo demandez par la personne qui s'inscrit existe deja ou pas .
Si il existe on lui demande de retaper un nouveau pseudo , dans le cas contraire on accepte l'inscription..

J'ais essaillez de batir ma requete de cette façon :
if(isset($_POST['envoi']))
	{

// Récupération des données du formulaire
	$pseudo = $_POST['pseudo'];
	$email = $_POST['email'];
	$code = $_POST['code'];
	$code2 = $_POST['code2'];
	$race = $_POST['race'];
                $age = $_POST['age'];
                $taille = $_POST['taille'];
                $sexe = $_POST['sexe'];
                $poid = $_POST['poid'];
	$valid = "^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,4}$";



$requete1 = "SELECT pseudo FROM util where pseudo='".$pseudo."'";
$result1 = mysql_query($requete1,$link)  or die ('Erreur2 : '.mysql_error() );


    if ($pseudo == '' ||$race == '' ||$code != $code2 || $email == '' || $age == '' || $sexe == '' || $poid == '' || $taille == '' || !(eregi($valid, $email)) )
			{


?>
				<h3>Informations incomplètes</h3>
				<p>Un (ou plusieurs) champ(s) n a(ont) pas été correctement rempli(s).</p>
        <ol>
<?php
				if ($pseudo == '') // Si le champ "pseudo" est vide,
					{	print "<li>Vous n'avez pas indiquez votre pseudo</li>\n";	}
En gros je me bloke au niveau de ma requete 1 pour verifier s'il existe ou pas et si tels est le cas inventé une variable ou pas..

(desolé dans ma tete c un petit peu embrouillé ;) )

Si vous pouviez m'aider ou me mettre sur le chemin sa serait gentil
merci

Posté : 29 sept. 2005, 10:44
par Cyrano
Au lieu de faire un "SELECT pseudo..." fais un
$requete1 = "SELECT COUNT(*) FROM util WHERE pseudo = '". $pseudo ."'";
À ce moment là, tu vérifie le nombre qui est retourné : s'il est supérieur à 0, alors le pseudo inscrit est déjà utilisé et tu retourne un message d'avertissement approprié, sinon alors tu peux enregistrer.

Saisis-tu le principe général ?

Posté : 29 sept. 2005, 10:55
par castelli
Oui je comprend bien le principe :) mais de la a bien l'appliquer .. lol


J'ais penser faire comme sa , sa vous a l'air bon ou bien...
$requete1 = "SELECT COUNT(*) FROM util WHERE pseudo = '". $pseudo ."'";
$result1 = mysql_query($requete1,$link)  or die ('Erreur2 : '.mysql_error() );
$row = mysql_fetch_row($result1);




    if ($pseudo == '' ||$row != 0 ||$race == '' ||$code != $code2 || $email == '' || $age == '' || $sexe == '' || $poid == '' || $taille == '' || !(eregi($valid, $email)) )
			{.....

Posté : 29 sept. 2005, 10:57
par mere-teresa
Essaie en faisant un print ou echo de ta requête, puis en la testant dans PHPMyAdmin, ensuite si ça fonctionne, fais tourner ton code PHP et fais un echo sur quasi toutes les variables pour vérifier ce qu'elles contiennent (ou var_dump() si tu veux connaître leur type) et contrôler ce qui se passe dans ton appli.

Posté : 29 sept. 2005, 11:06
par Cyrano
Shéma pratique:
<?php
//...
$requete1 = "SELECT COUNT(*) FROM util WHERE pseudo = '". $pseudo ."'";
$result1 = mysql_query($requete1,$link)  or die ('Erreur2 : '.mysql_error() );
/* On récupère le résultat */
$existant = mysql_result($result1, 0);
/* On vérifie la valeur du résultat: */
if($existant > 0)
{
    /* Le pseudo proposé a été trouvé dans la base, on sort et on demande de choisir un autre pseudonyme */
}
else
{
    /* Le pseudo est disponible, on continue le traitement pour enregistrer les données */
}
?>

Posté : 29 sept. 2005, 11:14
par mere-teresa
Je dirais même plus :
Shéma pratique:
<?php
//...
$requete1 = "SELECT COUNT(*) FROM util WHERE pseudo = '". $pseudo ."'";
/*On affiche la requete pour vérification */
echo $requete1."<br />";

$result1 = mysql_query($requete1,$link)  or die ('Erreur2 : '.mysql_error() );

/* On récupère le résultat */
$existant = mysql_result($result1, 0);
/* On vérifie la valeur du résultat: */
if($existant > 0)
{
echo "Il y a déjà un pseudo <br />";
    /* Le pseudo proposé a été trouvé dans la base, on sort et on demande de choisir un autre pseudonyme */
}
else
{
// on regarde ce que contient existant
var_dump($existant);echo "<hr />";
    /* Le pseudo est disponible, on continue le traitement pour enregistrer les données */
}
?>

Posté : 29 sept. 2005, 11:29
par castelli
C'est bon j'ais compris comment sa fonctionnait :P

Merci encore a cyrano et a la mere teresa ;)

Posté : 29 sept. 2005, 11:32
par Cyrano
Hé, castelli, pssssttt! c'est "mere" et teresa sans "h", fais gaffe, elle va t'assassiner toute sainte qu'elle fût sinon :-"

Posté : 29 sept. 2005, 11:37
par castelli
a Mince j'avais pas vus jvais faire un tit edit discret héhéhé Merci pr l'info, veut pas me la mettre a dos quand meme hihi