Avatar billede gabi Novice
20. juli 2007 - 13:56 Der er 4 kommentarer og
1 løsning

If/else - Kode til et alternativ svar på søgning

Jeg har en Access database med en oversigt over rollespillere, hvortil jeg har lavet en asp-fil med følgende kode.

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

SQL = "select * from Medlemmer Where karakter = 'skovelver'"
set RS = conn.execute( SQL )

' Gennemløb Recordset (rs) med en løkke
Do

  ' Udskriv værdien af kolonnen Karakter
  Response.Write "<p><strong>Navn:</strong>" &" "  & rs("Navn") &"</p>"
  Response.write "<p><strong>Karakter:</strong>" &" "  & rs("Karakter") &"</p>"
  Response.Write "<p><strong>In-game:</strong>" &" "  & rs("Ingame") &"</p>"
  Response.write "<p><strong>Adresse:</strong>" &" "  & rs("Adresse") &"," &" "  & rs("Postnummer") &" " & rs ("Town")& "</p>"
  Response.write "<p><strong>Telefonnummer:</strong>" &" "  & rs("Telefonnummer") &"</p>"
  Response.write "<p><strong>E-mail:</strong>" &" "  & rs("Mailadresse") &"</p>"
  Response.write "<p><strong>Alder:</strong>" &" "  & rs("Alder") &"</p>" &"<br>" &"</br>"
 

  ' Gå til næste Record i rs
  rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>


Den virker fint, hvis der er nogle tilmeldt karakteren skovelver, så får man en oversigt.

Nu kunne jeg godt tænke mig at tilføje noget if/else, men ved ikke rigtig hvordan.

Det skulle gerne være sådan, at hvis der ingen skovelvere er tilmeldt, skal den give et andet svar f.eks.

Else
  Response.Write "<p>Der er ingen tilmeldt denne kategori!</p>"

Det må være en smal sag for nogen af i kloge hoveder - jeg er nemlig helt grøn og starter fra bunden med at gøre det så enkelt som muligt.

Har forsøgt om jeg kunne finde et svar i Eksperten som jeg kunne bruge, men det lykkedes ikke.
Avatar billede softspot Forsker
20. juli 2007 - 14:11 #1
Det er altid en dårlig idé at lave postcheck (dvs. efter første læsning er foretaget) for EOF på et recordset, så det bør du lade være med! :)

Check i stedet inden du begynder at læse i recordset'et, således:

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

SQL = "select * from Medlemmer Where karakter = 'skovelver'"
set RS = conn.execute( SQL )

if not rs.eof then
  ' Gennemløb Recordset (rs) med en løkke
  Do while not rs.eof

    ' Udskriv værdien af kolonnen Karakter
    Response.Write "<p><strong>Navn:</strong>" &" "  & rs("Navn") &"</p>"
    Response.write "<p><strong>Karakter:</strong>" &" "  & rs("Karakter") &"</p>"
    Response.Write "<p><strong>In-game:</strong>" &" "  & rs("Ingame") &"</p>"
    Response.write "<p><strong>Adresse:</strong>" &" "  & rs("Adresse") &"," &" "  & rs("Postnummer") &" " & rs ("Town")& "</p>"
    Response.write "<p><strong>Telefonnummer:</strong>" &" "  & rs("Telefonnummer") &"</p>"
    Response.write "<p><strong>E-mail:</strong>" &" "  & rs("Mailadresse") &"</p>"
    Response.write "<p><strong>Alder:</strong>" &" "  & rs("Alder") &"</p>" &"<br>" &"</br>"
 

    ' Gå til næste Record i rs
    rs.MoveNext

  ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
  Loop
else
  Response.Write "Der er ikke tilmeldt nogen karakterer i denne kategori."
end if
' Luk recordsettet
rs.close
set rs = nothing

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede gabi Novice
20. juli 2007 - 14:18 #2
Hej softspot

Har nu tilrettet koden og det virker jo bare.
Tak for super hurtig svar.
På et eller andet tidspunkt må man vel begynde at kunne gennemskue bare lidt hvordan man får det til at fungere.
Men ellers er det jo dejligt at kunne få hjælp her.
Giv mig et svar og du får dine point.
Avatar billede softspot Forsker
20. juli 2007 - 14:23 #3
Ja, nøglen er at samle nogle enkelte teknikker op hen ad vejen og så bruge dem konsekvent. Det hjælper dels med at øge overskueligheden af din kode (for dig selv og andre) og så hjælper det med at mindske risikoen for fejl. Når en teknik så hænger fast, kan du kaste dig over nogle nye områder og lære dem på samme måde. Til sidst bliver du ret hård til at kode... ;-)
Avatar billede gabi Novice
20. juli 2007 - 14:34 #4
Nemlig...ha' en god weekend !!
Avatar billede softspot Forsker
20. juli 2007 - 15:10 #5
Tak i lige måde og tak for point :)
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
Kurser inden for grundlæggende programmering

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