Page 1 sur 1

Utilisateur unique

Posté : 24 avr. 2008, 22:46
par katagoto
Bonsoir
Je suis enraint de créer un système d'inscription et j'aimerais savoir quel est le moyen pour que 2 utilisisateurs n'ai pas le même pseudo, j'ai pensé a count(*) mais bon, comment faire ???

Avez vous une autre solution ???

Par avance merci

Posté : 24 avr. 2008, 22:51
par AB
Heu... quel est le problème exactement ?

EDIT ah oui je vois, tu cherches à faire ta requête.
$Verif = "SELECT COUNT(champ_du_login) FROM Ta_Table WHERE champ_du_login = $login";

Posté : 24 avr. 2008, 23:05
par zeus
Le principe est le suivant : lorsque tu veux créer un utilisateur, il n'existe pas encore en base de données.
Tu disposes d'un nom d'utilisateur, et tu veux vérifier qu'il n'existe pas en base de données

Du coup, il suffit que tu fasses une requête qui recherche dans ta table le nombre d'utilisateur dont le nom est identique à celui que l'utilisateur a saisie.
S'il n'y a aucun résultat, c'est que le nom n'est pas encore utilisé, sinon, c'est que le nom est déjà utilisé.

Techniquement parlant, ça passe par un COUNT(), effectivement.

Posté : 25 avr. 2008, 00:15
par Victor BRITO
Il faut surtout ajouter un clé unique à la colonne censée recevoir les pseudos.

Code : Tout sélectionner

CREATE TABLE ma_table ( pseudo TEXT, UNIQUE pseudo (pseudo) );
ou bien, si la table a été créée (ainsi que la colonne en question)

Code : Tout sélectionner

ALTER TABLE ma_table ADD UNIQUE pseudo (pseudo)

Posté : 25 avr. 2008, 09:36
par katagoto
Merci à tous, c'est bien ce que je me disais :/
Je pensais qu'il y avait une autre méthode, comme je ne connais pas tout ^^'

++

Posté : 25 avr. 2008, 17:39
par AB
Merci à tous, c'est bien ce que je me disais :/
Je pensais qu'il y avait une autre méthode, comme je ne connais pas tout ^^'

++
Une autre méthode pour ta requête aurait été de ne pas utiliser COUNT
$Verif = "SELECT champ_du_login FROM Ta_Table WHERE champ_du_login = $login"; 
Mais COUNT sera plus performant car au lieu de retourner la valeur du champ, on se contente de compter le nombre d'enregistrements correspondant à la clause WHERE