Ga naar inhoud

Records selecteren - 10 per pagina


anoniem

Aanbevolen berichten

[quote:9edacc9777="Wiep Corbier"]Heb jij een voorbeeldje waar jouw idee verwerkt is? Kijk nou eens naar mijn voorbeeld....[/quote:9edacc9777]Voorbeeldjes zijn er genoeg te vinden op internet (ook voor de php/mysql paging met LIMIT), kijk maar eens op een gemiddelde tutorial site. Maar je kan er van uitgaan dat de methode die Bill noemt gewoon werkt. Overigens ben ik het met Bill eens dat de LIMIT methode prettig werkt. Voor andere databases zijn overigens ook vaak eigen methoden te ontwikkelen die deze functionaliteit simuleren (bijvoorbeeld in een stored proc).
Link naar reactie
  • Reacties 66
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

[b:3f46f15bd8]Bill:[/b:3f46f15bd8] ga dan slapen, gek ;) [b:3f46f15bd8]Wiep:[/b:3f46f15bd8] in php heb je geen recordset object met properties (tenzij je een of andere db-layer gebruikt). Maar met MySQL kan je wel gebruik maken van de sql uitbreiding LIMIT. M.a.w. je hoeft alleen een query uit te voeren en de recordset te tonen (deze recordset bevat dan [color=brown:3f46f15bd8]alleen[/color:3f46f15bd8] de records die je wil tonen), dus zoveel werk is het niet. Om de pagina's te tonen heb je dan alleen nog het totaal aantal records nodig (select count(*) from tabel). Even snel een klein simpel voorbeeldje (fouten voorbehouden, het gaat meer om het idee dan om het leveren van een foutloos voorbeeld; ik moet namelijk ook gaan slapen ;)): [code:1:3f46f15bd8] // eigenschappen van pagina $result = mysql_query("select count(*) from tabel"); $numrows = mysql_result($result, 0); $pagesize = 10; $numpages = ceil($numrows/$pagesize); $page = $_GET["pg"]; if ($page == "") $page = 1; $offset = $page * $pagesize; // tonen records $result = mysql_query("select * from tabel limit $offset, $pagesize"); while ($row = mysql_fetch_array($result)) { echo $row[0], "<br />"; } // pagina nummers for ($i=1; $i<=$numpages; $i++) { echo "linkje naar pagina $i"; } [/code:1:3f46f15bd8]
Link naar reactie
hey, ik heb ff die site van hierboven bekeken, en inderdaad goede uitleg. Maar toch nog net niet genoeg dat ik het werkend krijg, ik krijg de volgende foutmelding: - Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified - en het zit in LINE 40, ik zal mijn code even geven hieronder.. [code:1:ef007cca4e] <% Option Explicit 'Declareer constante(s) Const RecordsPerPagina = 10 'Declareer variabele(n) Dim objConn Dim objRs Dim sConnection Dim arrRs Dim strSQL Dim strPagina Dim lngVelden Dim lngRecords Dim lngAantalRecords Dim lngAantalPaginas Dim lngPagina Dim lngStart Dim i, j 'SQL statement strSQL = "Select * FROM gastenboek ORDER BY datum DESC" 'Haal huidige pagina uit QueryString en bereken startpunt strPagina = Request.QueryString("pag") If IsNumeric(strPagina) And strPagina <> "" Then lngPagina = CLng(strPagina) Else lngPagina = 1 End If lngStart = RecordsPerPagina * (lngPagina - 1) + 1 'Open database Set objConn = Server.CreateObject("ADODB.Connection") sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Server.MapPath("\remco292\db\kiona.mdb") & ";" & _ "Persist Security Info=False" objConn.Open Application("sConnection") 'Open recordset Set objRs = Server.CreateObject("ADODB.Recordset") objRs.Open strSQL, objConn, adOpenStatic, adLockReadOnly 'Vraag totaal aantal records op lngAantalRecords = objRs.RecordCount If lngAantalRecords >= lngStart Then 'Zet startpositie objRs.AbsolutePosition = lngStart 'Zet records in array en tel de velden en records arrRs = objRs.GetRows(RecordsPerPagina, adBookmarkCurrent) lngVelden = UBound(arrRs) lngRecords = UBound(arrRs, 2) ElseIf lngAantalRecords > 0 Then lngRecords = -2 Else lngRecords = -1 End If 'Sluit Recordset objRs.Close Set objRs = Nothing 'Sluit database objConn.Close Set objConn = Nothing %> <HTML> <BODY> <TABLE BORDER="1"> <% 'Bereken aantal pagina's lngAantalPaginas = lngAantalRecords \ RecordsPerPagina If lngAantalRecords Mod RecordsPerPagina > 0 Then lngAantalPaginas = lngAantalPaginas + 1 End If Select Case lngRecords Case -1 Response.Write "Er zijn geen records om weer te geven" Case -2 Response.Write "De opgevraagde pagina bestaat niet" Case Else 'Verwijzing naar vorige pagina weergeven If lngPagina > 1 Then Response.Write "<a href=""pagedgetrows.asp?pag=" & lngPagina - 1 & """>" Response.Write "<< terug</a>&nbsp;&nbsp;" End If 'Aantal pagina's weergeven Response.Write "pagina " & lngPagina & " van " & lngAantalPaginas 'Verwijzing naar volgende pagina weergeven If lngPagina < lngAantalPaginas Then Response.Write "&nbsp;&nbsp;<a href=""pagedgetrows.asp?pag=" & lngPagina + 1 & """>" Response.Write "verder >></a>" End If 'Laat tabel met waardes zien For i = 0 To lngRecords Response.Write "<TR>" For j = 0 To lngVelden Response.Write "<TD>" & arrRs(j, i) & "</TD>" Next Response.Write "</TR>" Next End Select %> [/code:1:ef007cca4e] Kan iemand zien wat ik fout doe? Bedankt..
Link naar reactie
Waar haal je Application vandaan? Gebruik dit maar: [code:1:6632a82343]db = "E:\Back-up klanten\JI\ji.mdb" Set conn = Server.CreateObject( "ADODB.Connection" ) conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db & ";" [/code:1:6632a82343] Wel even de directory aanpassen weet je wat je het beste kunt doen? De databaseconnection in een include-file zetten als ie goed is. Kun je daar geen fouten in maken.
Link naar reactie
Welk voorbeeld? Dat in het begin staat? Ik snap deze nu net aardig, maar die snap ik nog niet. Kijk ik ben dus bezig met een gastenboek, dat was wel duidelijk. Nu heb ik een access database met daarin de tabel 'gastenboek' daaruit moeten gehaald worden de velden: - datum - tijd - bericht Hoe verwerk ik dat dan in jouw voorbeeld? Als ik het een keer compleet en goed zie kan ik het zelf een keer uitpuzzelen en dan snap ik het wel.
Link naar reactie
oké, heb je het bestand "adovbs" ?? Ik zal mijn voorbeeld aanpassen aan jouw gegevens. je moet zelf even je databaseconnection in dit voorbeeld plaatsen [code:1:be90304e1a] <!-- #INCLUDE FILE="adovbs.inc" --> <html> <head> <meta http-equiv="Content-Language" content="nl"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>TopicLijst </title> </head> <body bgcolor="#FFFFFF"> <center> <% 'Get the Current page pg = TRIM(Request( "pg" )) IF pg = "" then pg = 1 Set RS = Server.CreateObject( "ADODB.RecordSet" ) RS.CursorType = adOpenStatic RS.ActiveConnection = Con RS.PageSize = 8 RS.Open = "SELECT * FROM gastenboek ORDER BY Datum DESC" RS.AbsolutePage = pg %> <center> <p align="left"><i><b><font face="Saved By Zero" size="7" color="#FFB0B0">&nbsp;</font></b></i><b><font color="#77BBFF" size="5">&nbsp;</font><font color="#0000FF" size="5">Prikbordberichtjes </font></b><i><b> <font face="Saved By Zero" size="5" color="#FFB0B0">&nbsp; </font></b></i> <font face="Verdana" color="#FF0000" size="1"><b> <span style="background-color: #FFFFFF">hoofdpagina - prikbord</span></b></font><i><b><font face="Saved By Zero" size="5" color="#FFB0B0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J</font></b></i><font face="Saved By Zero" size="5" color="#DCDCDC">ob</font><b><i><font face="Saved By Zero" size="5" color="#FFB0B0">I</font></i></b><font face="Saved By Zero" size="5" color="#DCDCDC">ntermediair...</font></p> <table width="90%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="20%" style="font-family:Arial Narrow; color:#000080"> <p align="right"> <font size="2"><b><a href="AddTopic.asp"><font color="#008080"> <span style="background-color: #FFFFFF">Nieuw bericht toevoegen</span></font></a></b></font></td> </tr> </table> <table width="90%" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; font-family: Tahoma; font-size: 8 pt; letter-spacing: 1pt" bordercolor="#111111" width="100%"> <tr><td width="65%"><font size="1" face="MS Sans Serif">&nbsp; Onderwerp</font></td> <td width="25%"><font size="1" face="MS Sans Serif">Starter</a></font></td> <td width="10%"><font size="1" face="MS Sans Serif">Reacties</a></font></td> </tr> </table> <table width="90%" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; font-family: Tahoma; font-size: 8 pt; letter-spacing: 1pt" bordercolor="#111111" width="100%"> <tr><td width="100%" style="font-family: Tahoma; font-size: 8 pt; color: #0000FF"> <hr color="#000080"></td> </tr> </table> <% WHILE NOT RS.EOF AND rowCount < RS.PageSize rowCount = rowCount + 1 %> <table width="90%" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; font-family: Tahoma; font-size: 8 pt; letter-spacing: 1pt" bordercolor="#111111" width="100%"> <tr><td width="65%" style="font-family: Tahoma; font-size: 8 pt; color: #0000FF"><%=RS("Datum")%></b></a></td> <td width="25%" style="font-family: Tahoma; font-size: 8 pt; color: #0000FF"><%=RS("Tijd")%>&nbsp;</td> <td width="10%" style="font-family: Tahoma; font-size: 8 pt; color: #0000FF"><%=RS("Bericht")%>&nbsp;</td> </tr> </table> <% RS.MoveNext WEND IF RS.PageCount > 1 THEN %> <font color="darkblue"> <b>Ga naar pagina: </b> <% FOR i = 1 to RS.PageCount IF i <> cINT( pg ) THEN %> <a href="TopicLijst.asp?pg=<%=i%>"><font color="blue"><%=i%></font></a> <% ELSE %> <b><%=i%></b> <% END IF NEXT %> </font> <% END IF 'Alles sluiten RS.Close Set RS = Nothing Con.Close Set Con = Nothing %> <p align="center"><a href="mailto:wcorbier@home.nl"><font color="#000000">Mail de sitemaster</font></a></p> <table> <tr> <td width="336" bgcolor="#FFFF80"> <p align="center"><font size="1" color="#800000" face="Tahoma">De sitemaster houdt het recht zonder opgaaf van reden een bericht te weigeren of te verwijderen</font></td> </tr> </div> </center> </table> </font> </body> </html> [/code:1:be90304e1a]
Link naar reactie
:D en mag ik vragen waar? [code:1:162b3641a5] Set objConn = Server.CreateObject("ADODB.Connection") objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Server.MapPath("\remco292\db\kiona.mdb") & ";" & _ "Persist Security Info=False" objConn.Open [/code:1:162b3641a5] dit gebruikte ik bij die vorige, kan die er dan nu weer in?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen


×
×
  • Nieuwe aanmaken...