Avatar billede mini97ad Nybegynder
22. maj 2003 - 13:26 Der er 12 kommentarer og
1 løsning

Tjeck for om "data" allerede er i databasen

hej

eksempel:

en bruger kan oprette et nyt navn i en tabel. Dette tabelfelt er unikt samt nøgle.

Der må ikke indtastes et navn som allerede ekstistere i db. Det er klart at en insert sql sætning ikke vil lykkes, da feltet er angivet til nøgle, men....

hvordan validere man dette smartest - altå undersøger om det indtastede navn allerede er i database...

:)
Avatar billede erikjacobsen Ekspert
22. maj 2003 - 13:31 #1
Indsæt - og check for om det gik godt,
Avatar billede ohmish Nybegynder
22. maj 2003 - 13:32 #2
$hent = "SELECT brugernavn FROM brugere WHERE brugernavn='$nybrugernavn' ";
$exist = mysql_query($hent);
if (mysql_num_rows($exist) > 0) { $echo "brugernavnet \"$nybrugernavn\" er taget, beklager!<br>"; }
Avatar billede mini97ad Nybegynder
22. maj 2003 - 13:33 #3
# erikj: ok den er jeg godt med på, men det var mere ment som en indledende valideringen inden brugeren indtastede de resterende oplysninger tilknyttet navnet.

Altså en specifikt tjeck for om navnet ekstirer og ikke generelt for om der blev indsat data
Avatar billede mini97ad Nybegynder
22. maj 2003 - 13:34 #4
tak omish - det var lidt det som jeg var efter :), men også tak til dig erik.
Avatar billede erikjacobsen Ekspert
22. maj 2003 - 13:35 #5
Jamen, hvis han skal indtaste mere, så kan der jo komme en anden
og snuppe det i mellemtiden. Mere fornuft at indsætte med det
samme, og så få fejlbeskeden hvis den allerede er der.
Avatar billede ohmish Nybegynder
22. maj 2003 - 13:36 #6
brugeren indtaster navn. det testes og der oprettes nyt navn i databasen hvis det ikke findes i forvejen.
Avatar billede mini97ad Nybegynder
22. maj 2003 - 13:37 #7
Det har du ret i Erik, men jeg ville lave begge former for validering..
Avatar billede ohmish Nybegynder
22. maj 2003 - 13:37 #8
men ellers er din vel bedre erik.
Avatar billede erikjacobsen Ekspert
22. maj 2003 - 13:39 #9
Mnajh ... men så siger du "Ok, brugernavnet er ok, fortsæt", og
senere "brugernavnet er taget, beklager". *g* men det må du
selvfølgelig selv bestemme ...
Avatar billede mini97ad Nybegynder
22. maj 2003 - 13:40 #10
det har du ret i - men så kan fejlmeddelsen være brugernavnet er lige blevet optaget. Det er dog en ret sjælden situation - men skarpt nok set af dig
Avatar billede Slettet bruger
25. maj 2003 - 03:57 #11
Medmindre du låser brugere for skrivning før din SELECT brugernavn ting.
Og unlock efter din INSERT.

Pseudokodo:

LOCK TABLES brugere WRITE
SELECT BRUGER MED SAMME BRUGERNAVN
IF (EXISTS)
  BESKED TIL BRUGER = FOO
ELSE
  INSERT BRUGER MED BRUGERNAVN
  BESKED TIL BRUGER = BAR
UNLOCK TABLES

http://www.mysql.com/doc/en/LOCK_TABLES.html
Avatar billede Slettet bruger
25. maj 2003 - 03:58 #12
Hold da op, jeg er kun 3 dage for sent på den her ...
Avatar billede mini97ad Nybegynder
25. maj 2003 - 10:01 #13
he he, men tak allligevel :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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