Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer plusieurs pages à partir d'une requête mysql

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
...