Comme vous l'avez deviné, vous devez utiliser le LIMIT
mot-clé
.
Il accepte deux valeurs (quoting) :
- le décalage de la première ligne à renvoyer
- le nombre maximum de lignes à renvoyer
Dans votre cas, vous devrez utiliser quelque chose comme ceci pour la première page :
select * from your_table order by ... limit 0, 50
Et, ensuite, pour la deuxième page :
select * from your_table order by ... limit 50, 50
Et pour le troisième :
select * from your_table order by ... limit 100, 50
Et ainsi de suite;-)
Modifier après le commentaire : pour obtenir le numéro de page, vous devrez le recevoir à partir de vos URL, cela ressemblera à ceci :
http://www.example.com/page.php?pagenum=2
Ensuite, vous calculerez la première valeur de la limite, :
$offset = 50 * intval($_GET['pagenum']);
Et injectez-le dans votre requête :
select * from your_table order by ... limit $offset, 50
Construire des URL vers les différentes pages revient maintenant à obtenir des URL comme celles-ci :
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
Si vous savez que vous avez 700 éléments, et 50 par page, vous aurez 700/50 pages;-)
Alors, quelque chose comme ça devrait faire l'affaire :
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Bien sûr, 700 est une valeur qui peut probablement changer, et ne doit pas être codée en dur :elle doit être déterminée à partir de la base de données, à l'aide d'un count
requête :
select count(*) as total
from your_table
...