[PHP/MySQL] Pagination

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 19:29
Ik heb al een tijdje een pagination class voor mijn site, waarmee je een query result kunt limiten en data over meerdere pagina's kunt verspreiden.

Op internet is ook een groot aantal pagination classes te vinden, echter, allen met dezelfde beperking.
Er is ontzettend veel overhead. Bij elke pagina wordt het aantal regels geteld, aan de hand waarvan voor elke pagina een link wordt gemaakt.

Het valt me op dat bij google.nl bijvoorbeeld het meer op een gok proces lijkt. Soms staat er dat er nog 4 pagina's zijn, klik je vervolgens op volgende dan zit je soms al op de laatste pagina. Weet iemand wat het onderliggende proces hiervan?

Je zou de count kunnen doorgeven in de query, maar stel dat je dit in een forum topic doet en er wordt net een bericht bijgeplaatst die op een nieuwe pagina komt, dan kan je die niet zien zonder naar de eerste pagina te gaan.

Volgens mij valt hier veel winst mee te boeken, dus alle goede tips zijn welkom!

Ik blijf er iig vrij nuchter onder....


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
De verschikkelijk veel overhead geeft een rowcount niet hoor :? Is allemaal in enkele duizendsten seconden te doen (aangenomen dat jouw database niets voorstelt in vergelijking met die van google ;))

[ Voor 28% gewijzigd door frickY op 27-06-2006 14:10 ]


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

maar stel dat je dit in een forum topic doet en er wordt net een bericht bijgeplaatst die op een nieuwe pagina komt, dan kan je die niet zien zonder naar de eerste pagina te gaan.
Dit snap ik niet :? Wellicht gebruik je een slechte class die álles opvraagt en cached ofzo.

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19:49

thomaske

» » » » » »

Zoek eens in de MySQL Manual naar: SQL_CALC_FOUND_ROWS en FOUND_ROWS()

[ Voor 6% gewijzigd door thomaske op 27-06-2006 14:27 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • ecageman
  • Registratie: September 2001
  • Laatst online: 10-07 21:49
Als je de count eenmalig wilt doen en deze dan laat onthouden (meegeeft in de links/cookie/...), dan kun je ook nog een "Last page" link erbij zetten die de count weer opnieuw doet en je de laatste pagina geeft. Bij de andere hoef je dan dus geen count meer te doen. Wellicht alleen nog een count op de pagina die in eerste instantie de laatste leek om zodoende nog additionele links te kunnen plaatsen als er iets nieuws is bijgekomen.

Het ligt natuurlijk wel aan de hoeveelheid requests die je moet verwerken. Als er niet al te veel bezoekers zijn, dan is het niet nodig om iets slims te bedenken om eventuele overhead tegen te gaan. Google krijgt natuurlijk heeeeel veeeeel requests en die moeten wel gaan gokken/cachen/etc. om dat allemaal te kunnen verwerken.

AMD Athlon 2800+, MSI K7N2Delta-L, 1024MB PC3200, SB Audigy2, XFX GF4MX440, BenQ DVD+-RW, NEC 1300A DVD+-RW, 2x WD 120GB 8mb, 2x Maxtor 250GB, Chenbro Gaming Bomb, Tagan 480W, 17" Iiyama monitor