rechercher dans la bdd si pseudo est deja existant

Eléphant du PHP | 450 Messages

29 sept. 2005, 10:39

(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
Alone in the dark , I smile :D

Mammouth du PHP | 19672 Messages

29 sept. 2005, 10:44

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 450 Messages

29 sept. 2005, 10:55

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)) )
			{.....
Alone in the dark , I smile :D

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 sept. 2005, 10:57

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.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 19672 Messages

29 sept. 2005, 11:06

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 */
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 sept. 2005, 11:14

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 */
}
?>
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 450 Messages

29 sept. 2005, 11:29

C'est bon j'ais compris comment sa fonctionnait :P

Merci encore a cyrano et a la mere teresa ;)
Modifié en dernier par castelli le 29 sept. 2005, 11:38, modifié 1 fois.
Alone in the dark , I smile :D

Mammouth du PHP | 19672 Messages

29 sept. 2005, 11:32

Hé, castelli, pssssttt! c'est "mere" et teresa sans "h", fais gaffe, elle va t'assassiner toute sainte qu'elle fût sinon :-"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 450 Messages

29 sept. 2005, 11:37

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
Alone in the dark , I smile :D