Avatar billede tfswebguy Nybegynder
20. december 2003 - 15:06 Der er 21 kommentarer og
1 løsning

brugernavn taget? Hvordan?

Hvordan får man et script til at se, om f.eks. et brugernavn er optaget, i en mysql database? (Så mange point, til hvis der kommer mere lige hurtigt)
Avatar billede ztyxx Nybegynder
20. december 2003 - 15:08 #1
du kan sætte felttypen til UNIQUE, så kan der ikke indsættes to ens værdier, men ellers kan du også kode dig ud af det
Avatar billede tfswebguy Nybegynder
20. december 2003 - 15:09 #2
Vil gerne have, at siden siger at brugernavnet er optaget...
Avatar billede ztyxx Nybegynder
20. december 2003 - 15:09 #3
ikke hvis du ikke kombinerer det med noget kode, mysql vil bare returnere fejl
Avatar billede punnishment Nybegynder
20. december 2003 - 15:10 #4
kan man så rediger fejl-meddelelsen? Så det evt. kunne intigreres i designet?
Fx. via ASP/PHP...?
Avatar billede tfswebguy Nybegynder
20. december 2003 - 15:12 #5
Vil have en stump kode, der ser om brugernavnet er optaget, og siger, at det er det, eller indsætter de data, der bliver sendt.. (I PHP)
Avatar billede riversen Nybegynder
20. december 2003 - 15:13 #6
har noget her:

    if( mysql_error() == "Duplicate entry '" . $_POST["brugernavn"] . "' for key 2" )
        $error .= "<li>Brugernavnet er optaget</li>";

tilpas det selv efter behov.
Avatar billede Slettet bruger
20. december 2003 - 15:16 #7
Husk, hvis du benytter riversens forslag, skal den row i din tabel være primær key. Ellers vil den bare oprette en ny række med samme data..
Avatar billede riversen Nybegynder
20. december 2003 - 15:18 #8
pacroon: det er ikke rigtigt...den skal bare være unik, hvilket jo er rimelig oplagt, når det er det man ønsker.
Avatar billede tfswebguy Nybegynder
20. december 2003 - 15:22 #9
Virkede ikke... :o(
Avatar billede riversen Nybegynder
20. december 2003 - 15:22 #10
det gør det, hvis du har feltet lavet unikt i db'en  og tjekker din sammenligning er korrekt.
Avatar billede Slettet bruger
20. december 2003 - 15:23 #11
riversen: Ja, selvfølgelig ikke primær, my bad. Men jeg ved ikke hvor oplagt det er, det kommer vel an på hvor rutineret tfswebguy er ;)
Avatar billede tfswebguy Nybegynder
20. december 2003 - 15:24 #12
Er der ikke noget if exists noget, tis...???
Avatar billede riversen Nybegynder
20. december 2003 - 15:24 #13
du kan jo kigge i mysql manualen ;-)
Avatar billede riversen Nybegynder
20. december 2003 - 15:25 #14
men nej det tror jeg ikke...
Avatar billede Slettet bruger
20. december 2003 - 16:07 #15
$res=mysql_query("SELECT brugernavn FROM tabel WHERE brugernavn='{$brugernavn}' LIMIT 1") or die(mysql_error());
if (mysql_num_rows==1) {
  echo "Brugernavnet er brugt.";
} else {
  echo "Brugernavnet er ledigt";
}
Avatar billede ztyxx Nybegynder
20. december 2003 - 16:36 #16
if (mysql_num_rows($res)==1) {
Avatar billede Slettet bruger
20. december 2003 - 20:15 #17
ztyxx: Ja, naturligvis. Jeg må have sovet, da jeg skrev det.
Avatar billede ztyxx Nybegynder
20. december 2003 - 22:47 #18
hehe, nogle gange er hænderne altså hurtigere end øjet ;-)
Avatar billede toonblood Nybegynder
21. december 2003 - 23:07 #19
nogle gange ??? :D
Avatar billede tfswebguy Nybegynder
30. december 2004 - 04:14 #20
ææhm, har fundet ud af det.. undskyld jeg først skriver nu...
Svaret blev:

$select_logincheck = mysql_query("SELECT username FROM users WHERE (username='$username')");
$row_logincheck = mysql_fetch_array($select_logincheck);
if ($username!=$row_logincheck[username]) {
echo "Brugernavnet <b>$username</b> er frit. :o)<br>Opretter bruger. Vent venligst...<p>";
}else{
echo "Brugernavnet <b>$username</b> er desværre optaget. :o(<br>Vælg venligst et andet.

Se evt, hvad det bliver brugt til under http://tk.lir.dk/weemail/

Mvh Daniel Truelsen
Avatar billede Slettet bruger
30. december 2004 - 07:13 #21
Og hvad var der helt nøjagtigt galt med min løsning?
Avatar billede Slettet bruger
30. december 2004 - 07:14 #22
(Bortset fra den lille parantes, som ztyxx fangede en halv time efter.)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester