Afficher x éléments par page
tomy2904
Messages postés
324
Date d'inscription
Statut
Membre
Dernière intervention
-
tomy2904 Messages postés 324 Date d'inscription Statut Membre Dernière intervention -
tomy2904 Messages postés 324 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais savoir comment afficher par exemple maximum 5 éléments par page et mettre un bouton suivant pour afficher les 5 prochains éléments sur une page HTML.
Si vous avez des tutos ou quoi ça serait très gentil car je cherche mais je ne trouve pas :/
Merci!
j'aimerais savoir comment afficher par exemple maximum 5 éléments par page et mettre un bouton suivant pour afficher les 5 prochains éléments sur une page HTML.
Si vous avez des tutos ou quoi ça serait très gentil car je cherche mais je ne trouve pas :/
Merci!
A voir également:
- Afficher x éléments par page
- Site x - Guide
- Sites X : Pornhub, YouPorn et Redtube sont de nouveau accessibles en France - Guide
- Supprimer page word - Guide
- Afficher google en page d'accueil - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
3 réponses
Ater cela s'appelle pinayer sur les mots, mais en tapant "pagination php" on tombe bien sur les sites qui traitent de:
Créer un système de pagination automatique en PHP
https://antoine-herault.developpez.com/tutoriels/php/pagination-automatique-en-php/
Créer un système de pagination automatique en PHP
https://antoine-herault.developpez.com/tutoriels/php/pagination-automatique-en-php/
fais une recherche "pagination php"
ou région répétées(la pagination c'est pour les livres et autres documents pas pour les sites web).
Sans aller au tuto où je n'ai pas sur la main vous pouvez simplement utiliser la fonction SQL LIMIT.
exemple: SELECT * from table WHERE clause ORDER BY date ASC LIMIT 1,5
Donc vous aurez 5 premiers résultats dans l'ordre du champ date(cela marche avec tout les champs).
Donc page suivante(la même page les bornes du LIMIT peuvent être des variables php bien sûr)
SELECT * from table WHERE clause ORDER BY date ASC LIMIT 6,10
pour les 5 prochains résultats.
Votre bouton précédent suivant peut être un formulaire où vous envoyez les bornes de la limite par exemple en GET:
<form method='GET'>
<input type='hidden' name='limite' value='<?php echo $alimite; ?>'
<input type='submit' value='suivant'>
</form>
et donc au traitement:
if (isset($_GET['limite'])){
$limite_mini=$_GET['limite']+1;
$limite_max=$limite_mini+5;
// bien sûr si la valeur 5 est fixe vous pouvez utilisez une constante
// si la valeur 5(nombre d'affichage par page) peut être modifié utilisez un autre formulaire et une
//variable, comme quand vous avez un choix: "Afficher 'n' résultat par page"
}else{
$limite_mini=1;
$limite_max=$limite_mini+5;
}
La requête est donc:
$requete="SELECT * from table WHERE clause ORDER BY date ASC LIMIT ".$limit_min.", ".$limit_max;
Bien sûr pour le bouton précédent il faut faire l'inverse, vous pouvez soit nommer la variable passé dans le formulaire différemment(pour page précédente et page suivante) soit passer une autre variable pour indiquer dans quel sens vous naviguez(précédent/suivant).
Vous aurez aussi besoin de compter l'ensemble dez enregistrements concernés pour connaître quand afficher ou pas le bouton précédent et suivant.
J'espère être clair sinon tester et demander des précisions le cas échéant.
Sans aller au tuto où je n'ai pas sur la main vous pouvez simplement utiliser la fonction SQL LIMIT.
exemple: SELECT * from table WHERE clause ORDER BY date ASC LIMIT 1,5
Donc vous aurez 5 premiers résultats dans l'ordre du champ date(cela marche avec tout les champs).
Donc page suivante(la même page les bornes du LIMIT peuvent être des variables php bien sûr)
SELECT * from table WHERE clause ORDER BY date ASC LIMIT 6,10
pour les 5 prochains résultats.
Votre bouton précédent suivant peut être un formulaire où vous envoyez les bornes de la limite par exemple en GET:
<form method='GET'>
<input type='hidden' name='limite' value='<?php echo $alimite; ?>'
<input type='submit' value='suivant'>
</form>
et donc au traitement:
if (isset($_GET['limite'])){
$limite_mini=$_GET['limite']+1;
$limite_max=$limite_mini+5;
// bien sûr si la valeur 5 est fixe vous pouvez utilisez une constante
// si la valeur 5(nombre d'affichage par page) peut être modifié utilisez un autre formulaire et une
//variable, comme quand vous avez un choix: "Afficher 'n' résultat par page"
}else{
$limite_mini=1;
$limite_max=$limite_mini+5;
}
La requête est donc:
$requete="SELECT * from table WHERE clause ORDER BY date ASC LIMIT ".$limit_min.", ".$limit_max;
Bien sûr pour le bouton précédent il faut faire l'inverse, vous pouvez soit nommer la variable passé dans le formulaire différemment(pour page précédente et page suivante) soit passer une autre variable pour indiquer dans quel sens vous naviguez(précédent/suivant).
Vous aurez aussi besoin de compter l'ensemble dez enregistrements concernés pour connaître quand afficher ou pas le bouton précédent et suivant.
J'espère être clair sinon tester et demander des précisions le cas échéant.