Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Machen Sie mehrere Seiten aus einer MySQL-Abfrage

Wie Sie erraten haben, müssen Sie den LIMIT Schlüsselwort .

Es akzeptiert zwei Werte (Anführungszeichen) :

  • der Offset der ersten zurückzugebenden Zeile
  • die maximale Anzahl der zurückzugebenden Zeilen


In Ihrem Fall müssen Sie für die erste Seite so etwas verwenden:

select * from your_table order by ... limit 0, 50

Und dann für die zweite Seite:

select * from your_table order by ... limit 50, 50

Und für den dritten :

select * from your_table order by ... limit 100, 50

Und so weiter;-)


Nach dem Kommentar bearbeiten : Um die Seitennummer zu erhalten, müssen Sie sie von Ihren URLs erhalten, die so aussehen würden:

http://www.example.com/page.php?pagenum=2

Dann berechnen Sie den ersten Wert für das Limit, :

$offset = 50 * intval($_GET['pagenum']);

Und fügen Sie es in Ihre Abfrage ein:

select * from your_table order by ... limit $offset, 50


Das Konstruieren von URLs zu den verschiedenen Seiten ist jetzt eine Frage des Abrufens von URLs wie diesen:

http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...

Wenn Sie wissen, dass Sie 700 Elemente und 50 pro Seite haben, haben Sie 700/50 Seiten;-)
Also, so etwas wie das sollte ausreichen:

for ($i=0 ; $i<700/50 ; i++) {
    // Use http://www.example.com/page.php?pagenum=$i as URL
}


Natürlich ist 700 ein Wert, der sich wahrscheinlich ändern kann und sollte nicht hartcodiert werden:Er sollte aus der Datenbank bestimmt werden, indem ein count verwendet wird Abfrage :

select count(*) as total
from your_table
...