Avatar billede Slettet bruger
10. december 2006 - 06:01 Der er 5 kommentarer og
1 løsning

Hente udvalgte data ved at opsætte kriterier

Jeg har et script, hvor jeg gerne vil hente overskrift'er på indlæg som de forskellige bruger har skrevet. Som mit script er nu, så henter den alle indlæg ind på profil.asp uanset user_id. Jeg vil kun have de indlæg ind der tilknyttes den enkelte bruger. Fx hvis der er en bruger, der har user_id 11 skal der kun vises indlæg fra user_id 11 osv. Er der en, der kan hjælpe mig med at få det til at virke :o)

DB'en
Users: user_id user_name user_email user_password user_created
Dagbog: Id bruger_id dato tekst overskrift ViewCounter

default.asp
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("dagbog.mdb")
Conn.Open DSN

strSQL = "Select * From users Order by user_id ASC"
Set rs = Conn.Execute(strSQL)

Do

Response.Write "<center><table BORDER=0 CELLSPACING=0 COLS=1 WIDTH='200'>"
Response.Write "<tr>"
Response.Write "<a href=""profil.asp?user_id="&rs("user_id")&""">"& rs("user_name") & "</a>"
Response.Write "</TD>"
Response.Write "</TR>"
Response.Write "</TABLE>"
rs.MoveNext
Loop While Not rs.EOF
----------------------
profil.asp
<%
' Sikrer mod SQL injection
If isNumeric(Request.QueryString("bruger_id")) Then

' 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("dagbog.mdb")
Conn.Open DSN

' SQL forespørgsel

strSQL = "Select * from dagbog WHERE bruger_id = bruger_id"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
    Do While Not rs.EOF

  ' Udskriv værdien af kolonnen Fornavn
Response.Write "<a href=""visdagbog.asp?bruger_id="&rs("bruger_id")&""">"& rs("overskrift") & "</a><br>"

' Løber posterne i gennem
    rs.MoveNext
    Loop
   
    ' Lukker forbindelse
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede mitbrugernavn Praktikant
10. december 2006 - 10:02 #1
profil.asp
<%
' Sikrer mod SQL injection
If isNumeric(Request.QueryString("user_id")) Then

' 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("dagbog.mdb")
Conn.Open DSN

' SQL forespørgsel

strSQL = "Select * from dagbog WHERE user_id = "& request("user_id")
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
    Do While Not rs.EOF

  ' Udskriv værdien af kolonnen Fornavn
Response.Write "<a href=""visdagbog.asp?bruger_id="&rs("bruger_id")&""">"& rs("overskrift") & "</a><br>"

' Løber posterne i gennem
    rs.MoveNext
    Loop
   
    ' Lukker forbindelse
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede mitbrugernavn Praktikant
10. december 2006 - 10:04 #2
' hov jeg overså dagbog databasen

profil.asp
<%
' Sikrer mod SQL injection
If isNumeric(Request.QueryString("user_id")) Then

' 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("dagbog.mdb")
Conn.Open DSN

' SQL forespørgsel

strSQL = "Select * from dagbog WHERE bruger_id = "& request("user_id")
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
    Do While Not rs.EOF

  ' Udskriv værdien af kolonnen Fornavn
Response.Write "<a href=""visdagbog.asp?bruger_id="&rs("bruger_id")&""">"& rs("overskrift") & "</a><br>"

' Løber posterne i gennem
    rs.MoveNext
    Loop
   
    ' Lukker forbindelse
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede mitbrugernavn Praktikant
11. december 2006 - 07:58 #3
og hvordan gik det så ???????
Avatar billede Slettet bruger
12. december 2006 - 00:01 #4
Jeg prøvede dit forslag, men får denne fejl
Microsoft VBScript compilation error '800a03f6'

Expected 'End'

profil.asp, line 27

linie 27    Set Conn = Nothing
Avatar billede mitbrugernavn Praktikant
12. december 2006 - 07:00 #5
' Sikrer mod SQL injection
If isNumeric(Request.QueryString("user_id")) Then

' 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("dagbog.mdb")
Conn.Open DSN

' SQL forespørgsel

strSQL = "Select * from dagbog WHERE bruger_id = "& request("user_id")
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
    Do While Not rs.EOF

  ' Udskriv værdien af kolonnen Fornavn
Response.Write "<a href=""visdagbog.asp?bruger_id="&rs("bruger_id")&""">"& rs("overskrift") & "</a><br>"

' Løber posterne i gennem
    rs.MoveNext
    Loop
   
    ' Lukker forbindelse
    Conn.Close
    Set Conn = Nothing
end if

' sæt end if tilsidst
Avatar billede Slettet bruger
12. december 2006 - 16:29 #6
nu får jeg denne fejl
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

profil.asp, line 15

line 15 Set rs = Conn.Execute(strSQL)
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