Avatar billede bpedersen Novice
07. marts 2009 - 19:02 Der er 4 kommentarer og
1 løsning

overføre fra forrige side

Hej

jeg prøver lige at forklare hvad jeg gerne vil gøre, da jeg ikke helt kan greje hvordan.

Jeg har følgende tabeller og kolonner i min access DB.

klub: id, dato, klub, adresse, postnr, by, telefon, email, FILE1
hold: id, dato,  klub, hold
traener: id, dato, klub, hold, traener, mobil, email, FILE1
spiller: id, dato, klub, hold, spiller, mobil, email

Jeg vil på siden default.asp liste klubberne. når der klikkes på en klub skal klubside.asp åbne med liste over de hold der er i den pågældende klub.

Men hvordan får jeg informationen med om hvilken klub der er valgt? Er det vha. Request.Querystring eller session?


Her er den kode jeg indtil videre har lavet.

På forhånd tak.
Avatar billede bpedersen Novice
07. marts 2009 - 19:06 #1
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../db/hs.mdb")
Conn.Open DSN


'Response.write Request.Querystring("id")
'Henter holdliste
  Set rs = Server.CreateObject("ADODB.Recordset")
  strSQL = "Select * From hold Where klub = " & Request.Querystring("klub")
   
  rs.Open strsql, conn, 1, 3
   
    if rs.EOF then
Response.write "Der er ikke oprettet nogen hold!"
else
Do While Not rs.EOF

strNavn = rs("hold")
' lav et link til klubside.asp med Id-værdien i URL
strLink = "<a href='default.asp?m=klubforside&id=" & rs("id") & "'>" & strNavn & "</a>"
Response.Write "<div class=nyhedliste>"& strLink &  "</div>"

RS.movenext
Loop


End if
Conn.Close
Set Conn = Nothing
Response.write "</p>"
%>
Avatar billede apocs Nybegynder
07. marts 2009 - 19:33 #2
Hvis "klub" er den primære database så kan du med fordel lægge endnu et felt ind i de andre tabeller, der angiver klubId og hente ud fra det.

F.eks.:

Fra forsiden henter du dine klubber, og hvis du vil vise nærmere info om klubben, kan du lave et link der hedder noget i stil med:

default.asp?showInfo=3

3 repræsenterer ID på klubben.

Når du så vil hente info fra de andre tabeller bruger du feltet klubId som skal være typen int.

sql = "SELECT * FROM hold WHERE klubId = "&klubId&""

Husk at checke tallet for int og beskytte for SQL injections hvis du vælger at benytte querystring metoden.

Session metoden kan også sagtens bruges.
Avatar billede bpedersen Novice
07. marts 2009 - 20:21 #3
apocs> kunne jeg ikke blot overføre 'klub' i querystring, sammen med 'id'?

Default.asp
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../db/hs.mdb")
Conn.Open DSN

'Henter klubliste
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from klub"
    rs.Open strsql, conn, 1, 3
   
    if rs.EOF then
Response.write "Der er ikke oprettet nogen klub!"
else
Do While Not rs.EOF

strNavn = rs("klub")
  ' lav et link til klubside.asp med Id-værdien i URL
' strLink = "<a href='default.asp?m=klubforside&id=" & rs("id") & "'>" & strNavn & "</a>"
  strLink = "<a href='default.asp?m=klubforside&id=" & rs("id") & "&klub=" & strNavn & "'>" & strNavn & "</a>"
Response.Write "<div class=nyhedliste>"& strLink &  "</div>"

RS.movenext
Loop


End if
Conn.Close
Set Conn = Nothing
Response.write "</p>"
%>

********************
klubside:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../db/hs.mdb")
Conn.Open DSN


'Response.write Request.Querystring("id")
'Henter holdliste
  Set rs = Server.CreateObject("ADODB.Recordset")
  strSQL = "Select * From hold Where klub = " & Request.Querystring("klub")
 
   
  rs.Open strsql, conn, 1, 3
   
    if rs.EOF then
Response.write "Der er ikke oprettet nogen hold!"
else
Do While Not rs.EOF

strNavn = rs("hold")
' lav et link til klubside.asp med Id-værdien i URL
strLink = "<a href='default.asp?m=klubforside&id=" & rs("id") & "'>" & strNavn & "</a>"
Response.Write "<div class=nyhedliste>"& strLink &  "</div>"

RS.movenext
Loop


End if
Conn.Close
Set Conn = Nothing
Response.write "</p>"
%>

**********************

Får dog denne fejl!

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'klub = Støvring IF'.

/bvtest/bv-main/klubforside.asp, line 15

Og linie 15 er:

rs.Open strsql, conn, 1, 3
Avatar billede bpedersen Novice
07. marts 2009 - 22:28 #4
Fik det løst på den måde.

Skriv et svar
Avatar billede apocs Nybegynder
08. marts 2009 - 14:22 #5
Svar :)
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