pagination sous php

Petit nouveau ! | 4 Messages

05 mars 2019, 13:03

Bonjour

Pour l'instant j'ai sur mon site une pagination un peu primaire avec un affichage des pages de 1 à 76 ce qui n'est pas esthétique

J'aimerais mettre en place un pagination avec des boutons "suivant" et "précédent", voici mon code

function liensPage22($nbTotal,$marque,$modele,$etat,$budgetInit,$budgetFinal,$nrj,$bv,$cat,$couleur,$kmInit,$kmFinal,$annee,$id,$trie,$nbinit)
{
$nbPage=ceil($nbTotal/50);
echo'<table width="100%">';
echo'<p align="left"><strong><b>USE the search box to filter your query -'.$nbTotal.' - result</b>';
if ($nbTotal>1) { echo 's'; }
echo '</strong><b> - pages : </b>';
for ($i=1;$i<=$nbPage;$i++)
{
$nbinit2 = ($i-1)*10;
$page = $nbinit/10+1;
//echo '<b>page = </b>'.$page;
echo ($page==$i) ? $i.' ': '<a href="/lefthanddrivecars/result.php?marque='.$marque.'&amp;modele='.$modele.'&amp;budgetInit='.$budgetInit.'&amp;budgetFinal='.$budgetFinal.'&amp;nrj='.$nrj.'&amp;bv='.$bv.'&amp;cat='.$cat.'&amp;kmInit='.$kmInit.'&amp;kmFinal='.$kmFinal.'&amp;annee='.$annee.'&amp;nbinit='.$nbinit2.'">'.$i.'</a> ';

}
echo'</p>';
echo'</table>';
echo'<br />';

}

Pourriez-vous m'aider?

Merci

Mammouth du PHP | 881 Messages

07 mars 2019, 05:32

Bonjour,

d'abord, lorsque tu présentes ici, il faut mettre ton code dans un espace spécialement conçu pour ça : tu trouveras le bouton PHP dans la barre d'outils (barre bleue). Tu peux aussi créer cet espace pour code avec un beau « PHP » entre crochet ouvrant ( [ ) et crochet fermant ( ] ) et fermer ton code avec crochet ouvrant, trait oblique ( / ) PHP puis crochet fermant. Le bouton est plus rapide et facile, mais plus clair et très utile pour tous.

echo'<p align="left"><strong><b>USE the search box to filter your query -'.$nbTotal.' - result</b>';
if ($nbTotal>1) { echo 's'; }
echo '</strong><b> - pages : </b>';
// Ici j'insérerais la mention « Page précédente »
for ($i=1;$i<=$nbPage;$i++)
{
$nbinit2 = ($i-1)*10;
$page = $nbinit/10+1;
//echo '<b>page = </b>'.$page;
echo ($page==$i) ? $i.' ': '<a href="/lefthanddrivecars/result.php?marque='.$marque.'&amp;modele='.$modele.'&amp;budgetInit='.$budgetInit.'&amp;budgetFinal='.$budgetFinal.'&amp;nrj='.$nrj.'&amp;bv='.$bv.'&amp;cat='.$cat.'&amp;kmInit='.$kmInit.'&amp;kmFinal='.$kmFinal.'&amp;annee='.$annee.'&amp;nbinit='.$nbinit2.'">'.$i.'</a> ';

}
// Ici j'insérerais la mention « Page suivante »
echo'</p>';

Puisque tu sais faire ton code avec un for et comparer la valeur $i de ton for à la valeur actuelle de page ( $page ), tu peux faire un lien semblable à ceux produit dans ta boucle, mais en remplaçant la variable $i par $page-1 (pour accéder à la page précédente et $page+1 pour la suivante.


Ça pourrait ressembler à :

echo '<a href="/lefthanddrivecars/result.php?marque='.$marque.'&amp;modele='.$modele.'&amp;budgetInit='.$budgetInit.'&amp;budgetFinal='.$budgetFinal.'&amp;nrj='.$nrj.'&amp;bv='.$bv.'&amp;cat='.$cat.'&amp;kmInit='.$kmInit.'&amp;kmFinal='.$kmFinal.'&amp;annee='.$annee.'&amp;nbinit='.$nbinit2.'">'.($Page-1).'</a> ';

Mais - au fait - la liste produite par ton « for » est la liste des items ou celle des pages ?
Le lien qui est produit et qui est affiché $i mènera à un item ou à un page ?



Tiens, petit raccourci en chemin (bonus!)

echo'<p align="left"><strong><b>USE the search box to filter your query -'.$nbTotal.' - result'.(($nbTotal>1) ? 's' : '').'</b></strong><b> - pages : </b>';
Soyez artisans de paix

Petit nouveau ! | 4 Messages

08 mars 2019, 17:22

Bonjour

Merci pour cette correction, pourrais-tu m'envoyer à quoi devrait ressembler le code? Désolé mais je m'emmêle les pinceaux dans mes écritures

Merci

Mammouth du PHP | 881 Messages

08 mars 2019, 17:44

Et bien non.
D'une part parce c'est ici un forum d'entraide pour aider à programmer, non pour faire faire la programmation par d'autres.
D'autre part parce que je suis bien plus mêlé dans ton code que toi-même puisses l'être. Démêle-toi d'abord, tu nous présenteras cela de façon claire lorsque toi-même sauras mieux ce que tu veux.
D'autre part encore parce que j'ai déjà fait ce que tu me demandes, presque avec les mêmes mots :
Ça pourrait ressembler à
avais-je écrit dans mon précédent message.
Soyez artisans de paix

Petit nouveau ! | 4 Messages

08 mars 2019, 17:54

Ah ok je pensais bien que c’était cela mais ça me reproduit la mention « -1 » plusieurs (autant de pages qu’il y a )

Peut-être modifier i++ aussi alors ?

Mammouth du PHP | 881 Messages

08 mars 2019, 18:08

Mets de l'ordre dans ton code. Il est difficile de s'y retrouver.
L'idée globale n'est pas claire non plus.
Le lien que tu produis là semble pointer vers un item particulier, mais tu parles dans ta descriptions de « pages » lesquelles, à mon habitude, seraient de regroupement d'items. Alors, on veut quoi, des items, des pages, les deux ?
Soyez artisans de paix

Petit nouveau ! | 4 Messages

08 mars 2019, 19:50

Bonjour

C'est simplement un changement de page, avec des items listés.

Merci