/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
oprette bruger i database, tjek om bruger ~
Fra : jan nielsen


Dato : 08-09-03 20:40

hej, håber i kan hjælpe mig...

jeg har lavet sådan at man udfylder en form med brugernavn/kode/
osv. der så opretter det i en tabel i min database. i kan se den
her.

strSQL = "Insert into brugere ("
strSQL = strSQL & "bruger, "
strSQL = strSQL & "kode, "
strSQL = strSQL & "tlf, "
strSQL = strSQL & "email, "
strSQL = strSQL & "bopæl) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("bruger") & "',"
strSQL = strSQL & "'" & Request.Form("kode") & "',"
strSQL = strSQL & "'" & Request.Form("tlf") & "',"
strSQL = strSQL & "'" & Request.Form("email") & "',"
strSQL = strSQL & "'" & Request.Form("bopæl") & "' )"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing


hvad og hvor? skal jeg indsætte sådan at den tjekker først om
"bruger" eksistere i databasen i forvejen, og så derefter skriver
at brugernavnet er i brug. for som det er nu kan jeg oprette 10
brugere der hedder anders f.eks :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
pepss (08-09-2003)
Kommentar
Fra : pepss


Dato : 08-09-03 21:01


"jan nielsen" skrev
> jeg har lavet sådan at man udfylder en form med brugernavn/kode/
> osv. der så opretter det i en tabel i min database. i kan se den
> her.

[kode]

> hvad og hvor? skal jeg indsætte sådan at den tjekker først om
> "bruger" eksistere i databasen i forvejen, og så derefter skriver
> at brugernavnet er i brug. for som det er nu kan jeg oprette 10
> brugere der hedder anders f.eks :)

du kan ikke "indsætte" noget i den kode du har lavet for den kan jo kun sete
noget ind i databasen.

det du skal er at hente navn fra databasen og tjekke om der er der i
forvejen.
noget alá:

strnavn = Request.Form("profilnavn")

hent data

Do
if strnavn = rs("navn") THEN
Response.Redirect "trin2.asp?navn=ikkeok"
end if
rs.MoveNext
Loop While Not rs.EOF

håber du har fået en ide om hvordan det kan laves elles spør du bare igen!

--
pepss
den ordblinde der prøver at blive web-designer
www.cafe-flirt.dk
www.team-blitz.dk



jan nielsen (08-09-2003)
Kommentar
Fra : jan nielsen


Dato : 08-09-03 21:11

hej :)

skal jeg skrive den sådan her?

strnavn = Request.Form("bruger")

Do
if strnavn = rs("bruger") THEN
Response.Redirect "trin2.asp?navn=ikkeok"
end if
rs.MoveNext
Loop While Not rs.EOF

strSQL = "Insert into brugere ("
strSQL = strSQL & "bruger, "
strSQL = strSQL & "kode, "
strSQL = strSQL & "tlf, "
strSQL = strSQL & "email, "
strSQL = strSQL & "bopæl) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("bruger") & "',"
strSQL = strSQL & "'" & Request.Form("kode") & "',"
strSQL = strSQL & "'" & Request.Form("tlf") & "',"
strSQL = strSQL & "'" & Request.Form("email") & "',"
strSQL = strSQL & "'" & Request.Form("bopæl") & "' )"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing


eller kan jeg ikke gøre det på den måde?



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

jan nielsen (08-09-2003)
Kommentar
Fra : jan nielsen


Dato : 08-09-03 22:00

Der kan man bare se, man kan selv :) jeg fandt selv ud af det,
tak for hjælpen

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (08-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-09-03 22:27

jan nielsen skrev:

> Der kan man bare se, man kan selv :) jeg fandt selv ud af det,

Hvad gjorde du? Det er kutyme at fortælle svaret hvis man selv
finder det - der kunne jo være andre der kunne bruge det.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (08-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-09-03 22:00

pepss skrev:

> du kan ikke "indsætte" noget i den kode du har lavet for den
> kan jo kun sete noget ind i databasen.

Det er korrekt.

> det du skal er at hente navn fra databasen og tjekke om der er
> der i forvejen.

Eller bedre endnu - sørge for at databasen ikke kan have to brugere
med samme navn. Det gøres ved at lave et unikt indeks på
brugernavnet. Så kan man forsøge at lave indsæt og tjekke om der
opstod en fejl eller ej.


> strnavn = Request.Form("profilnavn")
>
> hent data
>
> Do
> if strnavn = rs("navn") THEN
> Response.Redirect "trin2.asp?navn=ikkeok"
> end if
> rs.MoveNext
> Loop While Not rs.EOF

Uha - det er en meget ineffektiv metode til at lede efter værdier i
en database. Det er langt mere effektivt at bede databasen om at
udvælge de poster der indeholder det man leder efter:

strSQL = SELECT 'fundet' FROM personer WHERE brugernavn = '" & _
        plingEscape(Request.Form("profilnavn")) & "'"

NB: Funktionen plingEscape sikrer mod fejl og misbrug. Man skal
selv skrive den - eller en tilsvarende. Se hvordan og hvorfor her:
<http://asp-faq.dk/article/?id=95>


Her kan man afgøre om navnet er optaget ved at spørge om postsættet
er tomt:

   navnOptaget = NOT rs.EOF

(eller skrevet lidt mere udførligt:

   If rs.EOF Then
       ' Ingen poster med det søgte navn
       navnOptaget = False
   Else
       ' Der er en eller flere poster med det søgte navn
       navnOptaget = True
   End If        
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

jan nielsen (09-09-2003)
Kommentar
Fra : jan nielsen


Dato : 09-09-03 07:28

hej Jens GyldenkærneClausen. det er rigtigtgt, :)

jeg har gjort sådan her

strSQL = "Select * From brugere"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)



strnavn = Request.Form("bruger")

Do
if strnavn = rs("bruger") THEN
Response.Redirect "fejlbruger.asp"
end if
rs.MoveNext
Loop While Not rs.EOF

strSQL = "Insert into brugere ("
strSQL = strSQL & "bruger, "
strSQL = strSQL & "kode, "
strSQL = strSQL & "tlf, "
strSQL = strSQL & "email, "
strSQL = strSQL & "bopæl) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("bruger") & "',"
strSQL = strSQL & "'" & Request.Form("kode") & "',"
strSQL = strSQL & "'" & Request.Form("tlf") & "',"
strSQL = strSQL & "'" & Request.Form("email") & "',"
strSQL = strSQL & "'" & Request.Form("bopæl") & "' )"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (09-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-09-03 11:53

jan nielsen skrev:

> hej Jens GyldenkærneClausen. det er rigtigtgt, :)

Hvad er rigtigt? Det er svært at se når du ikke citerer noget (se
gerne min signatur).


> jeg har gjort sådan her
>
> strSQL = "Select * From brugere"
> ' Udfør forespørgsel (rs indeholder nu resultatet)
> Set rs = Conn.Execute(strSQL)

Den måde virker, men er - som jeg skrev i foregående indlæg -
særdeles ineffektiv. En af de ting en database er rigtig god til,
er at finde værdier i poster. Det udnytter du bare ikke når du
beder databasen hente alle værdierne for at sammenligne dem i asp.

Jeg vil anbefale at du læser det foregående indlæg en gang mere.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

pepss (09-09-2003)
Kommentar
Fra : pepss


Dato : 09-09-03 17:09


"Jens Gyldenkærne Clausen" skrev

> > strnavn = Request.Form("profilnavn")
> >
> > hent data
> >
> > Do
> > if strnavn = rs("navn") THEN
> > Response.Redirect "trin2.asp?navn=ikkeok"
> > end if
> > rs.MoveNext
> > Loop While Not rs.EOF
>
> Uha - det er en meget ineffektiv metode til at lede efter værdier i
> en database. Det er langt mere effektivt at bede databasen om at
> udvælge de poster der indeholder det man leder efter:

du må ikke sige til nogen at jeg gør sådan på min side

> strSQL = SELECT 'fundet' FROM personer WHERE brugernavn = '" & _
> plingEscape(Request.Form("profilnavn")) & "'"
>
>
>
> Her kan man afgøre om navnet er optaget ved at spørge om postsættet
> er tomt:
>
> navnOptaget = NOT rs.EOF

der er hvis lige noget jeg skal ha lavet om!
jeg har hvis meget at lære endnu! men databaser er nu heller ikke læt sys
jeg. det er nok svært et lave en tutorial over SQL som passer på alle
databaser men det ville nu være godt hvis der var sådan en på dansk!

--
pepss
den ordblinde der prøver at blive web-designer
www.cafe-flirt.dk
www.team-blitz.dk



Jens Gyldenkærne Cla~ (09-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-09-03 20:21

pepss skrev:

> jeg har hvis meget at lære endnu! men databaser er nu heller
> ikke læt sys jeg.

Nej - databaser er ikke helt lette at gå til. Hvis man vil arbejde
meget med databaser, vil jeg anbefale at man læser lidt om emnet.
Man kan evt. starte med et af de små hæfter der bl.a. kan købes i
DSB-kiosker. Har man mod på lidt mere, kan man for eksempel kigge
på Joakim Dalbys "Databasehåndbogen" - den forklarer mange af de
grundlæggende ting ved databaser, bl.a. ved gode eksempler.

> det er nok svært et lave en tutorial over
> SQL som passer på alle databaser men det ville nu være godt
> hvis der var sådan en på dansk!

Dalbys bog er ikke skrevet til nogen speciel database. Der er i
øvrigt ikke så mange forskelle mellem sql-databaser - den
grundlæggende syntaks for SELECT-, UPDATE-, INSERT- og DELETE-
forespørgsler ligger nogenlunde fast.

Men der er stadig forskelle - bl.a. i den måde man opretter
tabeller på og de funktioner der er til rådighed i databasen. Der
er også forskel på hvor mange sql-kommandoer der understøttes - fx
er subselects ikke understøttet i aktuelle udgaver af mysql.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408945
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste