Avatar billede andersasp Nybegynder
27. juli 2004 - 19:09 Der er 14 kommentarer og
1 løsning

Vis kun 5 records!

Hejsa eksperter!

Jeg har et godt script forneden som viser nogle kategorier samt underlæggende sider! jeg vil dog meget gerne nu have den til at kun vise de sidste 5 underliggende sider under hver kategori plus et link til de næste 5 (forrige - næste). jeg har en kode som efter sigende skulle være god, men efter flere timers forsøgen prøver jeg nu her:

min kode som virker som er.............

<%
Set rs = Server.CreateObject("ADODB.Recordset")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open  MM_multiforum_STRING
SQL = "SELECT forumcategory.FCID, forumcategory.FCheadline, forumtopic.FTcatkey, forumtopic.FTHEadline, forumtopic.FTID FROM forumcategory LEFT JOIN forumtopic ON forumcategory.FCID=forumtopic.FTcatkey ORDER BY forumcategory.FCID ASC"
Set rs = Conn.Execute(SQL)

lastID = ""
response.write "<table width=""100%"">"
colPrRow = 0
maxPrRow = 2
do while not rs.EOF
  if colPrRow = 0 then Response.write "<tr>"

  if lastID <> rs("FCID") then
    Response.Write "<td valign=""top"">"
    response.write "<table width=""100%"">"
    response.write "<tr><td><b>" & "<img src='replies/images/category.gif' align='absmiddle'><a href='showcategory.asp?FCID=" & rs("FCID") & "'>" & rs("FCheadline") & "</b></td></tr>"
    lastID = rs("FCID")
    colPrRow = colPrRow + 1
  end if
  if not rs.EOF then
  response.write "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & "<a href='topics/showtopic.asp?FTID=" & rs("FTID") & "&FCID=" & rs("FTcatkey") & "'>" & rs("FTHEadline") &  "</td></tr>"
  rs.Movenext
    end if
  if not rs.EOF then
    if lastID <> rs("FCID") then
      Response.Write "</table>"
      Response.Write "</td>"
    end if
  else
    Response.Write "</table>"
    Response.Write "</td>"
  end if

  if colPrRow = maxPrRow then
    colPrRow = 0
    response.write "</tr>"
  end if
loop
if colPrRow > 0 then response.write "</tr>"
response.write "</table>"
%>

loop funktionen som jeg ikke kan finde ud af:O-----

<%
startrecord = request.querystring("startrecord")

For i = 1 to startrecord
    rs.movenext
next

For i = 1 to 5
if finished = false then
    response.write "Record " & rs.fields(1) & "<BR>"
    rs.movenext
    if rs.eof then finished=true
end if
next
%>

<%if startrecord > 0 then%>
<a href="index.asp?startat=<%=startrecord - 5%>">Prev</a>
<%end if%>

<%if finished = false then%>
<a href="index.asp?startat=<%=startrecord + 5%>">Next</a>
<%end if%>
Avatar billede carl_erik Nybegynder
27. juli 2004 - 19:13 #1
du lager en x som teller
x = int(x) + int(1)

så setter du opp en if setning

if x =< 5 then
'blabla
else
'blabla
end if

skjønner?
Avatar billede andersasp Nybegynder
27. juli 2004 - 19:16 #2
OK! jeg er nok lige ny nok til dette! kan du evt prøve at sætte det ind i koden??
Avatar billede eagleeye Praktikant
27. juli 2004 - 19:27 #3
hvilken database bruger du?
Avatar billede keysersoze Ekspert
27. juli 2004 - 19:33 #4
Avatar billede eagleeye Praktikant
27. juli 2004 - 19:34 #5
Bruger du Access kunne du bruge dette paging af recordset:
http://activedeveloper.dk/artikler/default.asp?articleid=31

Bruger du mySQL kan du bruge SQL limit funktion til at hente de poster som skal vises:
http://activedeveloper.dk/artikler/default.asp?articleid=279
Avatar billede andersasp Nybegynder
27. juli 2004 - 19:45 #6
ok! tak jeg forsøger mig lige!!
Avatar billede andersasp Nybegynder
27. juli 2004 - 19:53 #7
jeg bruger forresten access! men jeg har lige prøvet at køre scriptet på mit webhot (web10) og der er åbenbart begrænsninger på bookmarks:

Jeg har hørt godt om nedenstående kode, kan den evt bruges i mit script???

<%
startrecord = request.querystring("startrecord")

For i = 1 to startrecord
    rs.movenext
next

For i = 1 to 5
if finished = false then
    response.write "Record " & rs.fields(1) & "<BR>"
    rs.movenext
    if rs.eof then finished=true
end if
next
%>

<%if startrecord > 0 then%>
<a href="index.asp?startat=<%=startrecord - 5%>">Prev</a>
<%end if%>

<%if finished = false then%>
<a href="index.asp?startat=<%=startrecord + 5%>">Next</a>
<%end if%>
Avatar billede eagleeye Praktikant
27. juli 2004 - 19:57 #8
Når man bruger paging af recordset dur denne metode ikke at åbne for recordsetet:
Set rs = Conn.Execute(SQL)

men man skal bruge den metode rs.Open som er vist i det eksempel der er linket til:

rs.Open SQL, Conn, 1
Avatar billede eagleeye Praktikant
27. juli 2004 - 20:01 #9
Men det du har vist kan også bruges. Men hvis nu en skriver:

side.asp?startrecord=999999999999999999999999999999999999999999999999999999


Vil din server nok hænge i lang tid. Jeg vil bruge en do til den første så forsøger den heller ikke at tælle fordi rs.EOF.


i=1
do while not rs.EOF
    rs.movenext
    i=i+1
    if i>=startrecord then exit do
loop
Avatar billede andersasp Nybegynder
27. juli 2004 - 20:07 #10
Jeg er helt blank med dette loop! er der nogen der evt. kan skrive det ind i koden for mig hvis jeg smider kr. 150.- oveni - har det stående på paypal.com!  håber ikke dette er imod ekspertens regler!!!
Avatar billede eagleeye Praktikant
27. juli 2004 - 20:08 #11
Har du prøvet mit forslag 27/07-2004 19:57:04 ?
Avatar billede andersasp Nybegynder
27. juli 2004 - 20:11 #12
Nej desværre jeg kan ikke rigtig finde ud af hvordan jeg skal sætte det ind i min orginale kode!!!

lastID = ""
response.write "<table width=""100%"">"
colPrRow = 0
maxPrRow = 2
do while not rs.EOF
  if colPrRow = 0 then Response.write "<tr>"

  if lastID <> rs("FCID") then
    Response.Write "<td valign=""top"">"
    response.write "<table width=""100%"">"
    response.write "<tr><td><b>" & "<img src='replies/images/category.gif' align='absmiddle'><a href='showcategory.asp?FCID=" & rs("FCID") & "'>" & rs("FCheadline") & "</b></td></tr>"
    lastID = rs("FCID")
    colPrRow = colPrRow + 1
  end if
  if not rs.EOF then
  response.write "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & "<a href='topics/showtopic.asp?FTID=" & rs("FTID") & "&FCID=" & rs("FTcatkey") & "'>" & rs("FTHEadline") &  "</td></tr>"
  rs.Movenext
    end if
  if not rs.EOF then
    if lastID <> rs("FCID") then
      Response.Write "</table>"
      Response.Write "</td>"
    end if
  else
    Response.Write "</table>"
    Response.Write "</td>"
  end if

  if colPrRow = maxPrRow then
    colPrRow = 0
    response.write "</tr>"
  end if
loop
if colPrRow > 0 then response.write "</tr>"
response.write "</table>"
Avatar billede eagleeye Praktikant
27. juli 2004 - 20:22 #13
Sådan her:


<%
'Paging
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs = Server.CreateObject("ADODB.Recordset")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open  MM_multiforum_STRING
SQL = "SELECT forumcategory.FCID, forumcategory.FCheadline, forumtopic.FTcatkey, forumtopic.FTHEadline, forumtopic.FTID FROM forumcategory LEFT JOIN forumtopic ON forumcategory.FCID=forumtopic.FTcatkey ORDER BY forumcategory.FCID ASC"
rs.Open SQL, Conn, 1

lastID = ""
response.write "<table width=""100%"">"
colPrRow = 0
maxPrRow = 2
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
End if
do while not rs.EOF And intRecCount > 0
  if colPrRow = 0 then Response.write "<tr>"

  if lastID <> rs("FCID") then
    Response.Write "<td valign=""top"">"
    response.write "<table width=""100%"">"
    response.write "<tr><td><b>" & "<img src='replies/images/category.gif' align='absmiddle'><a href='showcategory.asp?FCID=" & rs("FCID") & "'>" & rs("FCheadline") & "</b></td></tr>"
    lastID = rs("FCID")
    colPrRow = colPrRow + 1
  end if
  if not rs.EOF then
  response.write "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & "<a href='topics/showtopic.asp?FTID=" & rs("FTID") & "&FCID=" & rs("FTcatkey") & "'>" & rs("FTHEadline") &  "</td></tr>"
  rs.Movenext
    end if
  if not rs.EOF then
    if lastID <> rs("FCID") then
      Response.Write "</table>"
      Response.Write "</td>"
    end if
  else
    Response.Write "</table>"
    Response.Write "</td>"
  end if

  if colPrRow = maxPrRow then
    colPrRow = 0
    response.write "</tr>"
  end if
  intRecCount = intRecCount - 1
loop
if colPrRow > 0 then response.write "</tr>"
response.write "</table>"
%>

<%
'Paging
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
%>
Avatar billede andersasp Nybegynder
27. juli 2004 - 20:30 #14
tusinde tak eagleeye!!  det var helt perfekt! vil du ikke have lige mere end points per paypal???
Avatar billede eagleeye Praktikant
27. juli 2004 - 20:32 #15
Nej det helt i orden jeg kan ligge et svar her :)
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