Tags
Forum
Artikler
Brugere
Stil spørgsmål
1
online
Login
Husk mig
noget der tjekker om en row findes (brugere)
Tags:
php
Bruger #10841
@ 12.01.07 21:43
1
hej. jeg har, til et bruger system, brug for at vide hvordan jeg tjekker om brugernavnet allerede er optaget, inden at en bruger opretter sig. jeg har lavet det her:
$username = $_POST['username'];
$sql = mysql_query("SELECT * FROM users WHERE screen='$username'");
$result = mysql_num_rows($sql);
if($result !=="0"){
echo '<script language="Javascript">
alert ("The user name is already taken...")
</script>';
}
Det der sker er, at lige meget om bruger navnet findes eller ej, så får man alerten "The user name is already taken..."
Jeg kan ikke lige se hvad jeg har gjort forkert/kan gøre. Og det håbede jeg at netop DU kunne!
- tak, Andy
5
svar postet i denne tråd vises herunder
2
indlæg har modtaget i alt
6
karma
Sorter efter stemmer
Sorter efter dato
3
Bruger #10377
@ 12.01.07 21:50
66
I stedet for at skrive ...$result
!==
"0" {... så prøv at skriv ...$result
!=
"0" {... Altså kun med et lighedstegn.
Mvh.
Claus Thomsen
3
Bruger #5620
@ 12.01.07 23:11
1.500
I stedet for at først undersøge om navnet findes hvorfor så ikke bare sætte navne kolonnen i tabellen til unik og så prøve at indsætte og teste om den kommer med fejl nummeret 1062?
mysql_query("INSERT SQL");
if(mysql_errno()!=0){
if(mysql_errno()==1062){
echo '<script language="Javascript">
alert ("The user name is already taken...")
</script>';
}else{
die(mysql_error());
}
}
0
Bruger #10841
@ 12.01.07 23:02
1
okay
Jeg kan desværre først teste det imorgen, min server er nede!
0
Bruger #285
@ 12.01.07 23:03
524
Det er ikke nødvendigt at hente alle oplysninger - du kan sagtens nøjes med kun fx id:
mysql_query("SELECT id FROM users WHERE screen='$username'");
Eller endnu bedre bare få MySQL til at lave countet, og udtrække det som det eneste felt i en enkelt record:
mysql_query("SELECT COUNT(*) FROM users WHERE screen='$username'");
Så er der én record, hvor første felt (dvs. array-plads 0) er antallet af eksisterende brugere med det pågældende brugernavn (så derfor skal du tjekke om dette er større end 0).
0
Bruger #10841
@ 13.01.07 11:40
1
Jeg syntes at mikl.dk's var den smarteste! men siden han kommenterer uden point, så må i to andre vel bare få pointene!
Karma barometer (30 dage)
Modtaget
Givet
X
Favorit hos
Forum tråde
Artikler
Tilføj til dine favorit tags
Fjern fra dine favorit tags