17. november 2001 - 21:02Der er
6 kommentarer og 1 løsning
paging af mysql-søgeresultat
Jeg sidder og er i gang med et mindre paging-system hvor der søges i en mysql-database, og her virker alt som det skal.
Jeg har bare et enkelt problem; nemlig hvis der er RIGTIG mange resultater... det jeg har siddet og arbejdet på, men som desværre ikke er lykkedes er at få sammen output som fx google.com, hvor der er en frem og tilbage knap (det har jeg) og så ellers MAKS 10 tal som refererer til siden man vil hen til... jeg har selve tallene, men jeg kan ikke få det minimeret til der kun er 10...
koden:
<%
mypage = request.querystring(\"side\") if mypage = \"\" then mypage=\"1\" end if
name = Trim(Request(\"name\")) postnr = Trim(Request(\"postnr\")) style = Trim(Request(\"style\"))
if right(request.servervariables(\"http_referer\"),12) = \"storeloc.htm\" then
If Len(name) = 0 and Len(postnr) = 0 and Len(style) = 0 Then Response.Clear Response.Redirect(\"storeloc.htm\") Else name = Replace(name,\"\'\",\"\'\'\") postnr = Replace(postnr,\"\'\",\"\'\'\") End If else end if
Set rs = Server.CreateObject(\"ADODB.Connection\") rs.Open \"DRIVER=mysql;SERVER=localhost;DATABASE=s-oliver;UID=;PWD=;\" if style = \"women\" then SQL = \"noget\" elseif style = \"girls\" then SQL = \"noget andet\" elseif style = \"kids\" then SQL = \"noget tredie\" else SQL = \"noget fjerde\" end if rs.CursorLocation = 3 Set rs = rs.Execute(SQL)
If (rs.BOF AND rs.EOF) Then Response.Write \"no results found <br /><br />\" Else
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
I mySQL SQL findes en LIMIT som er ganke god til paging.
LIMIT start,antal
eks: \"SELECT * FROM tabel WHERE noget LIMIT 0,10\"
Så når du linker til din side kan si skrive sidenr og hendte med requesr.querystring.
dinside.asp?sidenr=1
og så sidenr=request.querystring(\"sidenr\") if sidenr=\"\" then sidenr=0 startIndex = 10*sidenr og så bliver SQL\'en: \"SELECT * FROM tabel WHERE noget LIMIT \"&startIndex&\",10\"
\'Først skal vi have antallet af poster Set objRs = Conn.Execute(\"SELECT COUNT(*) AS records FROM tabel;\") intRecords = int(objRs(\"records\")) objRs.Close Set objRs = Nothing
\'Variabler til query´et intPage = Request.QueryString(\"page\") if intPage = \"\" OR not isNumeric(intPage) then intPage = int(1) else intPage = int(intPage) end if intPageSize = int(5) intStart = intPage*intPageSize intStart = intStart-intPageSize intPages = int(intRecords/intPageSize)+1
Set objRs = Conn.Execute(\"SELECT * FROM tabel LIMIT \" & intStart & \", \" & intPageSize & \";\")
if objRs.EOF or objRs.BOF then Response.Write \"Ingen poster\" else Response.Write \"<table border=\"\"1\"\" cellpadding=\"\"3\"\">\" Response.Write \"<tr>\" Response.Write \"<td><b>id</b></td>\" Response.Write \"<td><b>Site</b></td>\" Response.Write \"</tr>\"
Do until objRs.EOF Response.Write \"<tr>\" Response.Write \"<td>\" & objRs(\"id\") & \"</td>\" Response.Write \"<td><a href=\"\"\" & objRs(\"url\") & \"\"\">\" & objRs(\"navn\") & \"</a></td>\" Response.Write \"</tr>\" objRs.MoveNext Loop Response.Write \"</table>\" end if
objRs.Close Set objRs = Nothing
\'Udskriver en \"sideliste\" For i = 1 to intPages if i = intPage then Response.Write \"<b>\" & i & \"</b> \" else Response.Write \"<a href=\"\"paging.asp?page=\" & i & \"\"\">\" Response.Write i Response.Write \"</a> \" end if next
i må først undskylde at jeg ikke tester jeres løsninger, men i stedet spørger... det som er meningen er (og som er løst nu) er at der vha fx 21 søgeresultater skal stå
det må siges at jeg selv har løst opgaven (som skrevet for lang tid siden... derfor afsluttes spm.
Synes godt om
Ny brugerNybegynder
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.