18. november 2005 - 23:07
Der er
31 kommentarer og 1 løsning
Paging problem!
Jeg kan ikke få paging til at hente de rigtig \request.querystring("id")\ til siden/sider, har hulens gør jeg forkert??? Jeg får denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e21' ODBC driver does not support the requested properties. /upload/kategori.asp, line 25 <body> <!--#include file="inc_top.asp" --> <!--#include file="inc_menu.asp" --> <% intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("foto.mdb") rs.Open strSQL, strDSN, 1 <<------line 25 If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 5 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount Response.Write " " & " " & " " & " " & " " & " " & "<H3>" & rs("kategori") & "</H3>" Do While Not rs.EOF And intRecCount > 0 %> <table width="102%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> <tr> <td> <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF"> <tr> <td bordercolor="#CCCCCC"> <table width="100%" border="0" align="center" cellpadding="5" cellspacing="0" class="ramme"> <tr> <td width="145" align="right" valign="top" bordercolor="#FFFFFF"> <div align="left">Hits : <% = rs("hits")%> <a href="vis.asp?rid=<%=rs("id") & "&t=" & rs("kategori")%> "> <%billed_url = rs("billede") if billed_url<>"" then Response.write "<br>" & "<br>" & "<img src='" & "thumbnails100" & "/" & Mid(billed_url,9) & "' class=""rammesort"" alt=""billede"" title=""lystfiskerensnet"" >" end if%></a> </div> </td> <td align="left" valign="middle"><br> <strong><font size="2"> <% = rs("titel") %> </strong><br> Indsendt af: <% = rs("indsendt") %><br> <% Str = rs("bemarkning") If len(Str) > 35 Then Response.write(left(Str, 35) & " .....") Else Response.Write Str end if %> <br> <a href=vis.asp?rid=<% = rs("id") & "&t=" & rs("kategori") %> " target='_top'" & > >> se mere<br></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <% intRecCount = intRecCount - 1 rs.MoveNext Loop End If rs.Close Set rs = Nothing Response.Write "<p>Gå til side " For intNum = 1 To intPageCount Response.Write "[" & "<a href=kategori.asp?id="&request.querystring("id") & "page=" & intNum & ">" & intNum & "</a>" & "]" & " " Next Response.Write "<p>" If Clng(intPage) > 1 Then Response.Write "<a href=kategori.asp?page=" & intPage - 1 & ">Forrige</a>" Else Response.Write "Forrige" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=kategori.asp?page=" & intPage + 1 & ">Næste</a> " Else Response.Write "Næste" End If %>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. november 2005 - 00:19
#1
Prøv evt. at udskifte din connectionstring med denne: strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("foto.mdb")
19. november 2005 - 21:33
#3
Jeg er ret sikker på, at det er request.querystring("id") den taber, men jeg kan ikke lige se hvordan det skal laves......
19. november 2005 - 22:30
#4
Har fundet fejlen, script kunne/vil ikke læse et mellem som er i request.querystring("id") eks. "Billeder 2005/natur"
20. november 2005 - 00:01
#5
Spøjst! Jeg ville til hver en tid have troet at det var det manglende mellemrum mellem værdien til kategori og ORDER BY der gav fejlen...(?) Anyway! Ked af at jeg ikke har været mere responsiv, men jeg har desværre været forhindret. Godt du fandt en løsning på dit problem (helt alene :)).
20. november 2005 - 18:38
#6
20. november 2005 - 19:45
#7
Jeg tror egentlig du kan klare det ved at sætte href-værdierne i anførselstegn som du gør mange af de andre attribut-værdier (det er god skik :)).
20. november 2005 - 22:12
#9
Hvad nu hvis du skriver: Response.Write "[<a href=""kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & """>" & intNum & "</a>] "
20. november 2005 - 22:15
#10
Prøv i øvrigt også dette lille trick for at undgå det problem med apostroffer i feltværdier i forespørgsler mod databasen: strSQL = "Select * From tekst Where kategori = '"& replace(request.querystring("id"),"'","''") & "' ORDER BY id desc"
20. november 2005 - 22:21
#11
Har stadig den sammen fejl med Response.Write "[<a href=""kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & """>" & intNum & "</a>] " Når jeg ændre strSQL sætning, kan den ikke finde nogen poster!!!
20. november 2005 - 22:28
#12
Hvordan ser dine data i tabellen tekst ud? Det virker forkert at du angiver en tekst i kriteriet kategori, men ikke angiver at det er en tekst ifht. din forespørgsel mod databasen...
20. november 2005 - 22:31
#13
Jeg er ikke helt med hvad du mener softspot???
20. november 2005 - 22:33
#14
En tekst i kategori kan eks. se sådan ud "FangstRapporter2005/Havørred"
20. november 2005 - 22:39
#15
Jeg tager udgangspunkt i flg. SQL (fra spørgsmålteksten): strSQL = "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc" og bider specielt mærke i denne del af SQL-sætningen: kategori = "&request.querystring("id") & "ORDER For det første indikerer du her overfor databasen af du vil søge efter en non-tekst værdi (idet du ikke omstiller request.querystring("id") med apostroffer). Dette er jo ikke korrekt, hvis kategori er et tekstfelt i databasen. For det andet, så mangler der et mellemrum mellem værdien til kategori og SQL-nøgleordet "ORDER", hvilket vil give en fejl (den du ser på sitet nu kunne f.eks. udspringe af disse to faktorer i kombination).
20. november 2005 - 22:39
#16
Prøv evt. at poste koden igen, så vi kan følge med i hvilken kode vi skal forholde os til... :)
20. november 2005 - 22:42
#17
Her er hele koden: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>LystfiskerensNet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="style.css" rel="stylesheet" type="text/css"> <body> <!--#include file="inc_top.asp" --> <!--#include file="inc_menu.asp" --> <% intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc" strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("foto.mdb") rs.Open strSQL, strDSN, 1 %> <H5><% Response.Write Request.Querystring("id") %></H5> <% if rs.EOF then %> <b>Der er desværre endnu ikke tilføjet nogle billeder i denne kategori</b> <% else rs.PageSize = 5 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount '** Paging part end Counter = 1 '**paging ændre do util linien: 'do until rs.eof Do While Not rs.EOF And intRecCount > 0 IF Counter = 4 Then Counter = 1 End if %> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> <tr> <td> <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <table width="100%" border="0" align="center" cellpadding="5" cellspacing="0" class="ramme"> <tr> <td width="145" align="right" valign="top"> <div align="left">Hits : <% = rs("hits")%> <a href="vis.asp?rid=<%=rs("id") & "&t=" & rs("kategori")%> "> <%billed_url = rs("billede") if billed_url<>"" then Response.write "<br>" & "<br>" & "<img src='" & "thumbnails100" & "/" & Mid(billed_url,9) & "' class=""rammesort"" alt=""billede"" title=""lystfiskerensnet"" >" end if%></a> </div> </td> <td align="left" valign="middle"><br> <B><% = rs("titel") %></B> <br> Indsendt af: <% = rs("indsendt") %><br> <% Str = rs("bemarkning") If len(Str) > 35 Then Response.write(left(Str, 35) & " .....") Else Response.Write Str end if %> <br> <a href="vis.asp?rid=<% = rs("id") & "&t=" & rs("kategori") %> "><B> >> se mere</B><br></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <% intRecCount = intRecCount - 1 rs.MoveNext Loop End If rs.Close Set rs = Nothing response.write"<table>" response.write"<tr>" response.write"<td>" Response.Write "<p>Gå til side" For intNum = 1 To intPageCount Response.Write "[" & "<a href=kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & ">" & intNum & "</a>" & "]" & " " Next Response.write "</td></tr><tr><td>" Response.Write "<p>" If Clng(intPage) > 1 Then Response.Write "<a href=kategori.asp?page=" & intPage - 1 & "&id=" & request.querystring("id") & ">Forrige</a> " Else Response.Write "Forrige" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=kategori.asp?page=" & intPage + 1 & "&id=" & request.querystring("id") & ">Næste</a> " Else Response.Write "Næste" End If response.write"</td>" response.write"</tr>" response.write "</table>" %> <!--#include file="inc_footer.asp" --> </body> </html>
20. november 2005 - 22:46
#18
Start med at rette denne linie (også selvom det betyder at du ikke finder noget, for dne nuværende version er syntaktisk ulovlig :)): strSQL = "Select * From tekst Where kategori = '" & replace(request.querystring("id"),"'","''") & "' ORDER BY id desc" Hvis nu vi kan få siden til at køre uden fejl først, så kan vi altid adressere næste udfordring bagefter :)
20. november 2005 - 22:53
#20
Det er fordi parametrene i dine links benytter formatet 'værdi' i stedet for bare værdi, f.eks.: /upload/kategori.asp?id='FangstRapporter2005/Havørred' i stedet for det som jeg umiddelbart ville synes var mest hensigtsmæssigt, nemlig: /upload/kategori.asp?id=FangstRapporter2005/Havørred Hvis du undlader at angive anførselstegnene i linket og i stedet sætter dem ind i din SQL-sætning, så er det også lettere at sikre sig mod SQL-injection (som jeg vil undlade at komme nærmere ind på her - men tro mig, det vil du helst ikke udsættes for! :)).
20. november 2005 - 23:03
#21
Har "fundet" billeder igen da jeg fjernet '' fra linket a href="kategori.asp?id='FangstRapporter2004/Havørred'" ...........
20. november 2005 - 23:04
#22
Ja, jeg sidder også og kigger på store fisk! :)
20. november 2005 - 23:11
#23
20. november 2005 - 23:13
#24
Ja, jeg har lige smugkigget (man er vel nysgerrig :)). Men det ser ud til at & giver nogle problemer i dine URL'er, så prøv bare at udskifte & med & i den første linie hvor W3C's validator melder fejl.
20. november 2005 - 23:19
#25
20. november 2005 - 23:23
#26
Det tror jeg er en kombination af at du skal bruge anførselstegn omkring hele attributværdien for href og så at du skal konvertere & til & som før...
20. november 2005 - 23:25
#27
P.S. jeg er opmærksom på at du har brugt anførselstegn omkring de fleste af de linier hvor der er fejl, men betyder jo blot at der kun mangler & i stedet for & :)
20. november 2005 - 23:29
#28
Jeg kan s.. ikke slippe af med dem ...... Response.Write "[" & "<a href=kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & ">" & intNum & "</a>" & "]" & " " Next Response.write "</td></tr><tr><td>" Response.Write "<p>" If Clng(intPage) > 1 Then Response.Write "<a href=kategori.asp?page=" & intPage - 1 & "&id=" & request.querystring("id") & ">Forrige</a> " Else Response.Write "Forrige" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=kategori.asp?page=" & intPage + 1 & "&id=" & request.querystring("id") & ">Næste</a> "
20. november 2005 - 23:40
#29
Jeg synes da også du er gået i den modsatte retning af hvad jeg foreslog :) Du skal omslutte attribut-værdien med anførselstegn - ikke fjerne dem. Altså: Response.Write "[<a href=""kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & """>" & intNum & "</a>] " Next Response.write "</td></tr><tr><td>" Response.Write "<p>" If Clng(intPage) > 1 Then Response.Write "<a href=""kategori.asp?page=" & intPage - 1 & "&id=" & request.querystring("id") & """>Forrige</a> " Else Response.Write "Forrige" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=""kategori.asp?page=" & intPage + 1 & "&id=" & request.querystring("id") & """>Næste</a> "
20. november 2005 - 23:45
#30
SORRY jeg må være træt i ansigtet....................MEN det virker! Tak for din udholdendehed softspot ;o)) Smider du et svar?
20. november 2005 - 23:50
#31
Det kommer der - velbekomme :D
20. november 2005 - 23:53
#32
Tak for point :)
Kurser inden for grundlæggende programmering