10. december 2001 - 09:06Der er
19 kommentarer og 1 løsning
Paging
Ok mit script er ret messy og jeg har istedet for at åbne et ADODB.recordset åbnet en ADODB.Connection.
jeg har forgæves forsøgt at få dette paging system ind i scriptet, men jeg giver op nu.
PAGING SYSTEM <% intPage = Request(\"page\") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
Set rs = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"SELECT LinkURL FROM Links\" strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"/aspdigital/db/demo.mdb\") rs.Open strSQL, strDSN, 1 If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 10 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount Response.Write \"<p><b>Side \" & intPage & \" af \" & intPageCount & \"</b></p>\" Do While Not rs.EOF And intRecCount > 0 Response.Write rs(\"LinkURL\") & \"<br>\" 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=paging.asp?page=\" & intNum & \">\" & intNum & \"</a> \" Next
Response.Write \"<p>\" If Clng(intPage) > 1 Then Response.Write \"<a href=paging.asp?page=\" & intPage - 1 & \"><<</a>\" Else Response.Write \"<<\" End If
Response.Write \" \"
If Clng(intPage) < Clng(intPageCount) Then Response.Write \"<a href=paging.asp?page=\" & intPage + 1 & \">>></a> \" Else Response.Write \">>\" End If %>
Scriptet jeg gerne vil have paging på er:
<% response.buffer = true set connect = server.createobject(\"ADODB.Connection\") Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"images.mdb\") Set rs = Connect.Execute(\"SELECT * FROM kategori\") Set rs3 = Connect.Execute (\"SELECT * FROM statics\") %> <html> <head> <title></title> <script type=\"text/javascript\" language=\"JavaScript\"><!-- function poppic(url) { window.open(url,\"PopPic\",\'height=250,width=250\'); } //--> </script> <link rel=\"stylesheet\" href=\"imgstyler.css\" type=\"text/css\"> </head> <body bgcolor=\"#FFFFFF\" link=\"#CC0000\" vlink=\"#CC0000\" alink=\"#CC0000\">
<% \'If the category has sub dirs we display them here
Set rs5 = Connect.Execute(\"SELECT * FROM kategori Where ParentID = \" & request(\"linkid\"))
if not rs5.EOF then
\'Count images in sub dirs if any strSQL = \"SELECT Count(billeder.ID) AS CountOflink, kategori.ID, kategori.katnavn \" strSQL = strSQL & \"FROM kategori LEFT JOIN billeder ON kategori.ID = billeder.katID \" strSQL = strSQL & \"Where kategori.ID = \"& rs5(\"id\") &\" GROUP BY kategori.ID, kategori.katnavn;\"
<% rs5.MoveNext Loop rs6.Close() else %> <a href=\"java script:history.go(-1);\">Previous Page</a> <% end if
%> </td> </tr> </table>
<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> <tr> <td align=\"center\" class=\"almfont\"> <td> </td> <td align=\"right\" class=\"almfont\"> </tr> <tr> <td align=\"center\" colspan=\"3\"> </tr> <tr> <td align=\"center\"> <td> </td> <td> </tr> <tr> <td align=\"center\"> <% if not rs.EOF then do until rs.EOF if Cint(Request.QueryString(\"linkid\")) = rs(\"id\") then Set rs2 = Connect.Execute(\"SELECT * FROM billeder WHERE katID = \" & request(\"linkid\") ) counter = 0 if not rs2.EOF then response.write \"The category is \" & rs(\"katnavn\") response.write \"<table><tr>\" do until rs2.EOF
Set rs4 = Connect.Execute(\"SELECT * FROM kategori Where id = \" & request(\"parentid\")) if not rs4.EOF then
\'Get the first folder mappe = rs4(\"katnavn\") & \"/\"
end if
\'Paging
\'Display pictures starts here response.write \"<td>\" %>
<% response.write \"</td>\" \'Display pictures end here
counter = counter + 1 if( counter = rs3(\"columcount\") ) then counter = 0 response.write \"</tr><tr>\" end if rs2.MoveNext Loop for i = counter to rs3(\"columcount\") response.write \"<td></td>\" next response.write \"</tr></table>\" else Response.Write \"There are no pictures in this category\" end if end if rs.movenext Loop else response.write \"Nothing in here\" end if %> </td> </tr> </table> </body> </html> <% rs.Close() rs2.Close() rs3.Close() rs4.Close() rs5.Close() %>
<% \'If the category has sub dirs we display them here
Set rs5 = Connect.Execute(\"SELECT * FROM kategori Where ParentID = \" & request(\"linkid\"))
if not rs5.EOF then
\'Count images in sub dirs if any strSQL = \"SELECT Count(billeder.ID) AS CountOflink, kategori.ID, kategori.katnavn \" strSQL = strSQL & \"FROM kategori LEFT JOIN billeder ON kategori.ID = billeder.katID \" strSQL = strSQL & \"Where kategori.ID = \"& rs5(\"id\") &\" GROUP BY kategori.ID, kategori.katnavn;\"
<% rs5.MoveNext Loop rs6.Close() else %> <a href=\"java script:history.go(-1);\">Previous Page</a> <% end if
%> </td> </tr> </table>
<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> <tr> <td align=\"center\" class=\"almfont\"> <td> </td> <td align=\"right\" class=\"almfont\"> </tr> <tr> <td align=\"center\" colspan=\"3\"> </tr> <tr> <td align=\"center\"> <td> </td> <td> </tr> <tr> <td align=\"center\"> <% intPage = Request(\"page\") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If Set rs = Server.CreateObject(\"ADODB.RecordSet\") rs.open \"SELECT * FROM kategori\", connect, 1
if not rs.EOF then rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount do until rs.EOF AND intRecCount > 0 if Cint(Request.QueryString(\"linkid\")) = rs(\"id\") then Set rs2 = Connect.Execute(\"SELECT * FROM billeder WHERE katID = \" & request(\"linkid\") ) counter = 0 if not rs2.EOF then response.write \"The category is \" & rs(\"katnavn\") response.write \"<table><tr>\" do until rs2.EOF
Set rs4 = Connect.Execute(\"SELECT * FROM kategori Where id = \" & request(\"parentid\")) if not rs4.EOF then
\'Get the first folder mappe = rs4(\"katnavn\") & \"/\"
counter = counter + 1 if( counter = rs3(\"columcount\") ) then counter = 0 response.write \"</tr><tr>\" end if rs2.MoveNext Loop
for i = counter to rs3(\"columcount\") response.write \"<td></td>\" next response.write \"</tr></table>\" else Response.Write \"There are no pictures in this category\" end if end if
<% \'If the category has sub dirs we display them here
Set rs5 = Connect.Execute(\"SELECT * FROM kategori Where ParentID = \" & request(\"linkid\"))
if not rs5.EOF then
\'Count images in sub dirs if any strSQL = \"SELECT Count(billeder.ID) AS CountOflink, kategori.ID, kategori.katnavn \" strSQL = strSQL & \"FROM kategori LEFT JOIN billeder ON kategori.ID = billeder.katID \" strSQL = strSQL & \"Where kategori.ID = \"& rs5(\"id\") &\" GROUP BY kategori.ID, kategori.katnavn;\"
<% rs5.MoveNext Loop rs6.Close() else %> <a href=\"java script:history.go(-1);\">Previous Page</a> <% end if
%> </td> </tr> </table>
<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> <tr> <td align=\"center\" class=\"almfont\"> <td> </td> <td align=\"right\" class=\"almfont\"> </tr> <tr> <td align=\"center\" colspan=\"3\"> </tr> <tr> <td align=\"center\"> <td> </td> <td> </tr> <tr> <td align=\"center\"> <% intPage = Request(\"page\") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
Set rs = Server.CreateObject(\"ADODB.RecordSet\") rs.open \"SELECT * FROM kategori\", connect, 1
if not (rs.BOF Or rs.EOF) then
do until rs.EOF if Cint(Request.QueryString(\"linkid\")) = rs(\"id\") then Set rs2 = Server.CreateObject(\"ADODB.RecordSet\") rs2.open \"SELECT * FROM billeder WHERE katID = \" & request(\"linkid\"), connect, 1 counter = 0
for i = counter to rs3(\"columcount\") response.write \"<td></td>\" next response.write \"</tr></table>\" else Response.Write \"There are no pictures in this category\" end if rs2.close() end if
rs.movenext Loop response.write \"<br>\"
If Clng(intPage) > 1 Then Response.Write \"<a href=se-kat.asp?linkid=\" & request(\"linkid\") & \"&parentid=\" & request(\"parentid\") & \"&page=\" & intPage - 1 & \"><<</a>\" Else Response.Write \"<<\" End If
For intNum = 1 To intPageCount if( intNum = CInt(intPage) ) then response.write \"<b>\" & intNum & \"</b> \" else Response.Write \"<a href=se-kat.asp?linkid=\" & request(\"linkid\") & \"&parentid=\" & request(\"parentid\") & \"&page=\" & intNum & \">\" & intNum & \"</a> \" end if Next
If Clng(intPage) < Clng(intPageCount) Then Response.Write \"<a href=se-kat.asp?linkid=\" & request(\"linkid\") & \"&parentid=\" & request(\"parentid\") & \"&page=\" & intPage + 1 & \">>></a>\" Else Response.Write \">>\" End If else response.write \"Nothing in here\" end if %> </td> </tr> </table> </body> </html> <% rs.Close() rs3.Close() rs5.Close() %>
du skal kikke på alle dine recordsets...det *kan* tyde på at enten din database er litt merkelig, *eller* at dine SQL ikke omfatter det de kan. jeg ser ikke noen grunn til at du skal benytte så mange recordsets for å vise den informasjon du vil vise...
oki men jeg kan ikke finde ud af hvordan man kan lave det ellers , kunne du give et eksempel på hvordan man kunne nøjes med et recordset istedet for 2 ?
du er blandt annet nødt til å JOIN\'e tabeller i dine SQL...jeg har desverre ikke tid til å kikke på det i dag, men jeg kan godt skrive om din kode i morgen så du kan se hvordan jeg ville ha gjort det iallefall...så kan du jo forhåpentligvis lære noe av det :-)
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.