Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


paging med ASP + MySQL.

Postades av 2002-09-24 16:43:33 - Johan Svensson, i forum asp - allmänt, Tråden har 4 Kommentarer och lästs av 585 personer

Jag har problem med en paging-sida (alltså en sida som delar upp poster på flera sidor).

Om jag har 3 poster i databasen som skall visas och som i koden ovan vill visa 2 poster per sida så går det inte så bra. Detta eftersom 3/2 inte blir ett heltal. Så därför kan man bara se de första två posterna. Det borde egentligen visas 2 poster på sid 1 och 1 post på sid 2. Men eftersom värdet "totalpages" är 1,5 så finns ju inte sid 2.

Hade jag haft 4 poster i databasen som skulle visas så fungerar det eftersom 4/2 är 2 vilket är ett heltal.


Så hur skall jag skriva för att koden skall fungera.

Hade jag inte använt MySQL så hade jag kunnat använda Paging-exemplet som Pelle skrivit som finns under "Tips & tricks" tror jag.


Jag använder MySQL och koden som jag använder för detta är:

<%
'****************************************
'* mySQL paging, why so fucking hard? *
'* www.netsrac.dk *
'****************************************

'****************************************
'* SETTING *
'****************************************
'Antal records pr. side
pagesize = 2
this = Request.ServerVariables("SCRIPT_NAME")

'****************************************
'* CODE *
'****************************************

page = Request.QueryString("page")
If page = "" Then
page = 1
End if
start = (page - 1) * pagesize

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "lumba"

Set rs = Conn.Execute("select count(*) as antal from gb, medlemmar Where gb.tillID = "&Request.QueryString("tillid") &" AND medlemmar.id="&Session("id"))
total = rs("antal")
Set rs = nothing
totalpages = (total / pagesize)
If totalpages Mod 1 <> 0 Then
totalpages = Int(totalpages) + 1
End if


Response.write("Side " & page & " af " & totalpages)

%>

<table width="100%" border="0" cellspacing="0" cellpadding="2" STYLE="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #000000;">
<%
Set rs = Conn.Execute("SELECT gb.id, gb.id2, gb.tillid, gb.datum, gb.text, medlemmar.username FROM gb, medlemmar Where gb.tillID = "&Request.QueryString("tillid") &" AND medlemmar.id="&Session("id")&" Order By gb.id DESC LIMIT " & start & "," & pagesize)
Do until rs.eof

counter = counter + 1

if counter Mod 2 = 0 then
color="#ffffff"
else
color="#eeeeee"
end if
%>
<tr bgcolor="<%=color%>" width="100%" >
<td> "><%=rs("username")%> (<%=rs("datum")%>)
</td>
<td align="right">

<%If Session("id") = rs("tillID") Then
Response.Write "[Släng]&nbsp;"
else
If Session("id") = rs("ID2") Then
Response.Write "<span class=rod>[Sl&auml;ng]</span>&nbsp;"
End If
End If %>

</td>
</tr>
<tr bgcolor=<%=color%>>
<td colspan="2"><%=Replace(TRIM(Server.HTMLEncode(rs("text"))),vbcrlf,"<br>")%></td>
</tr>

<%
rs.movenext
Loop
%></table>
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>

<%
Set rs = nothing

Conn.Close
Set Conn = nothing

Response.Write("G&aring; til side: ")
For i = 1 to totalpages
Response.Write("&nbsp;" & i & "&nbsp;")
Next
%>

</td>
</tr>
</table>


Svara

Sv: paging med ASP + MySQL.

Postades av 2002-09-24 22:04:30 - Thomas Tydal

Du använder modulusoperatorn. Den talar om hur mycket som blir över vid en heltalsdivision, den så kallade resten.

antal_sidor = CInt(antal_poster / poster_per_sida)
if antal_poster MOD poster_per_sida then
antal_sidor = antal_sidor + 1
end if


Svara

Sv: paging med ASP + MySQL.

Postades av 2002-09-24 22:05:16 - Pelle Johansson

Det finns en bra artikel om paging här på asp-sektionen. Eftersom du måste använda ett annat sätt att öppna ditt recordset på och en lite annorlunda teknik kan det vara bra att få full förståelse hur du skall göra.

Hälsningar
/Pelle


Svara

Sv: paging med ASP + MySQL.

Postades av 2002-09-25 00:45:43 - Andreas Hillqvist

Jag föreslår att du beräknar antalet sidor med:<br>
totalpages = ((total-1) \ pagesize) + 1<br>
<br>
Skrivit om koden lite. Dumt att skapa flera instanser av ett recordset. Helst när det tar tid att frigöra.<br>
<br>
Tycker allt din fråga ser lite skum ut. Borde inte Medlemmar var bunden till gb i Join'en?
<code>
<%

'Antal records pr. side
Const pagesize = 2
this = Request.ServerVariables("SCRIPT_NAME")

'****************************************
'* CODE *
'****************************************

page = Request.QueryString("page")
If Not IsNumeric(page) Then
page = 1
End if
start = (page - 1) * pagesize

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "lumba"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT Count(*) As Antal FROM gbWHERE gb.tillID = " & Request.QueryString("tillid"), Conn
total = rs("antal")
rs.Close

totalpages = ((total-1) \ pagesize) + 1

Response.write("Sida " & page & " av " & totalpages)

Colors = Array("#ffffff", "#eeeeee")
%>

<table width="100%" border="0" cellspacing="0" cellpadding="2" STYLE="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #000000;">
<%

rs.Open "SELECT gb.id, gb.id2, gb.tillid, gb.datum, gb.text, medlemmar.username FROM gb, medlemmar Where gb.tillID = "&Request.QueryString("tillid") &" AND medlemmar.id=" & Session("id") & " ORDER BY gb.id DESC LIMIT " & start & ", " & pagesize, Conn
Do until rs.eof
counter = (counter + 1) Mod 2
color = Colors(counter)
%>
<tr bgcolor="<%=color%>" width="100%" >
<td> "><%=rs("username")%> (<%=rs("datum")%>)
</td>
<td align="right">

<%
If rs("tillID") = Session("id") Then
Response.Write "[Släng]&nbsp;"
ElseIf Session("id") = rs("ID2") Then
Response.Write "<span class=rod>[Sl&auml;ng]</span>&nbsp;"
End If
%>
</td>
</tr>
<tr bgcolor=<%=color%>>
<td colspan="2"><%=Replace(TRIM(Server.HTMLEncode(rs("text"))),vbcrlf,"<br>")%></td>
</tr>
<%
rs.movenext
Loop
%></table>
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>

<%
rs.Close
Set rs = nothing

Conn.Close
Set Conn = nothing

Response.Write("G&aring; til side: ")
For i = 1 to totalpages
Response.Write("&nbsp;" & i & "&nbsp;")
Next
%>
</td>
</tr>
</table>
</code>


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 814
27 960
271 761
7 505
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies