Jag håller på att pula ihop ett script som istället för att spotta ut allt i en tabell istället portionerar ut 10 åt gången.. men det funkar inte när man kommit en bit in i tabellen och sen ska tillbaks till föregående 10 posterna, då hoppar den istället tillbaka till den första posten i tabellen.
<%
antal=10
set databas = Server.CreateObject("ADODB.Connection")
databas.Open "PROVIDER=Microsoft.jet.oledb.4.0;data source=" & SERVER.MAPPATH("./")&"\kontakten.mdb"
response.write(("SELECT TOP " & antal & " * FROM ANNONS WHERE AID" & request.querystring("vilkethall") & request.querystring("next") & " ORDER BY AID"))
set poster=databas.execute("SELECT TOP " & antal & " * FROM ANNONS WHERE AID" & request.querystring("vilkethall") & request.querystring("next") & " ORDER BY AID")
response.write("<TABLE BORDER=1><TR>")
FOR EACH tabellnamn IN poster.fields
response.write("<TH>"&tabellnamn.name&"</TH>")
NEXT
DO UNTIL poster.eof=True
response.write("</TR><TR>")
FOR EACH tabellvarde IN poster.fields
response.write("<TD>"&tabellvarde.value&"</TH>")
NEXT
nexten=poster.fields("AID")
poster.movenext
LOOP
response.write("</TR></TABLE>")
IF nexten="" THEN
nexten=request.querystring("next")
END IF
response.write("<P><A HREF='"&request.Servervariables("script_name")&"?next="&nexten&"&vilkethall=>'>Nästa "&antal&" poster")
response.write("<P><A HREF='"&request.Servervariables("script_name")&"?next="&nexten-(antal-1)&"&vilkethall=<'>Föregående "&antal&" poster")
databas.close
set databas=Nothing
set poster=Nothing
%>
emissionMedlem sedan dec. 19996 721 inlägg Ta en titt på hur din SQL-sats verkligen blir när du går tillbaka.
Det blir nämligen lite fel.
När du hoppar framåt är det inget problem, för det är ju bara att hämta det som har högre AID än den sista AID du hämtade (nexten), men om du ska backa kan du inte hämta det som har lägre AID än nexten, för då börjar man ju från början igen.
Jag rekommenderar dig att använda t.ex. tekniken i FAQn i stället.
------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Asch, måste ju vara lite rebell.
Varför kan man inte hämta det som är mindre om man kan hämta det som är större?. det är väl ingen skillnad.
Ge mig nu lite shysst kod :) ..
PatrikBMedlem sedan mars 20002 836 inlägg Kolla in denna artikel:
Beyond ADO paging
det är precis vad du letar efter och funkar mot tex mySQL ODBC som ej har full ADODB.Recordset stöd ... ännu ;o)
cya,
PatrikB
------------------
=================================
** ZWGdesign **
=================================
emissionMedlem sedan dec. 19996 721 inlägg "Varför kan man inte hämta det som är mindre om man kan hämta det som är större?. det är väl ingen skillnad."
Jo. Hämta större om alla:
SELECT TOP 10 fält WHERE ID>345
..hämtar de första 10 posterna som har ID större än 345
SELECT TOP 10 fält WHERE ID<345
..hämtar de första 10 posterna som har ID mindre än 345, dvs. rent teoretisk, post 1 till 10.
Du kan vända på sorteringsordningen i andra fallet...
SELECT TOP 10 fält WHERE ID<345 ORDER BY ID DESC
...och få rätt poster, men då har de ju helt plötsligt bytt ordning, och det är ju ingen höjdare.