Avatar billede wispy Nybegynder
03. marts 2003 - 09:10 Der er 11 kommentarer og
2 løsninger

Tjek om bruger eksistere

Jeg har lavet en database, hvor man vha. en form kan tilføje til databasen.

Hvordan tjekker jeg om der allerede findes en bruger med det navn der prøves på at tilføje...???
Avatar billede ahv Nybegynder
03. marts 2003 - 09:18 #1
$check = mysql_query("SELECT bruger FROM table where bruger='$_POST[bruger]'") or die (mysql_error());

if(mysql_num_rows($check) != 0) {
echo "Brugernavnet er optaget";
exit;
}
Avatar billede wispy Nybegynder
03. marts 2003 - 09:32 #2
Ja. Det virker så ikke!

Du har skrevet "or die" ??? Hvad menes med det ???

Og der hvor du har skrevet "!= 0", SKAL der stå 0 eller hvad ???
Avatar billede martinhrj Nybegynder
03. marts 2003 - 09:42 #3
"or die(mysql_error());" betyder at hvis der opstår en fejl under udførslen af select strengen, så skal den "die", altså udskrive mysql_error(), og så ikke udføre mere!

!= 0 checkker om der er nogle rækker i resultatet fra databasen. Hvis ikke der er nogle rækker, så findes brugeren ikke :) Og så er din lykke gjort...
Avatar billede martinhrj Nybegynder
03. marts 2003 - 09:44 #4
i det han har skrevet, skal du udskifte "bruger" (i $_POST[bruger]) med det brugernavn der skal søges efter, og table med tabelnavnet du har oprettet dine brugere i! Desuden skal du ændre det første "bruger" (efter SELECT) til det kolonnenavn hvor dine brugernavne står...

Giver det mening?
Avatar billede martinhrj Nybegynder
03. marts 2003 - 09:45 #5
Sludder!!!!! $_POST[bruger] betyder at der er en variabel "bruger" som er givet videre evt. fra en form, på en tidligere html-side!

Jeg skal lige vågne idag :)
Avatar billede wispy Nybegynder
03. marts 2003 - 09:50 #6
He he..! Takker...

Men det virker stadig ikke :((

Jeg får denne besked når jeg prøver at tilføje brugeren "Spade":

You have an error in your SQL syntax near 'where navn='Spade'' at line 1

Og brugeren "Spade" bliver tilføjet, selvom han findes i forvejen...
Avatar billede cpfrande Nybegynder
03. marts 2003 - 09:56 #7
Hey wispy !

Det er fordi du glemmer at indsætte et ' efter $_POST[bruger]
Dvs. der skal stå:
$check = mysql_query("SELECT bruger FROM table where bruger='$_POST[bruger]'") or die (mysql_error());

både ' og " til sidst !!!

:)

| frande
Avatar billede ahv Nybegynder
03. marts 2003 - 09:58 #8
$check = mysql_query("SELECT navn FROM table where navn='$_POST[navn]'") or die (mysql_error());

if(mysql_num_rows($check) != 0) {
echo "Brugernavnet er optaget";
exit;
}

Du skal kører denne før du prøver at indsætte noget i din database.

Husk at udskifte table med dit tabelnavn i din database og $_POST[navn] her skal navn rettes til det name du har givet dit input felt, hvor man indtaster navnet.
Avatar billede wispy Nybegynder
03. marts 2003 - 09:58 #9
Sådan har jeg det også stående:

$check = mysql_query("SELECT navn FROM $table where navn='$_POST[navn]'") or die(mysql_error());
Avatar billede cpfrande Nybegynder
03. marts 2003 - 10:01 #10
hmm, fejlen sker efter $table. Har du forsøgt at udskifte $table med den rigtige tabel i din MySQL for at se om dette virker???

| frande
Avatar billede martinhrj Nybegynder
03. marts 2003 - 10:01 #11
Du kan i din mysql database vælge at "navn" skal være "destinct", dvs. at der ikke må være mere end en af dette navn!
Avatar billede wispy Nybegynder
03. marts 2003 - 10:03 #12
Jeg havde ikke fået sat koden før jeg satte det ind i tabellen. Sorry ;)

NU VIRKER DET...!

1000 tak for hjælpen
Avatar billede cpfrande Nybegynder
03. marts 2003 - 16:44 #13
Det var så lidt :)

Held og lykke med dit script !

| frande
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