Bonjour,
J'essai actuellement de créer un système de pagination pour un site réalisé en MVC. J'ai pour cela suivi le tutoriel de Grafikart en essayant de l'adapter à l'architecture MVC.
Voilà donc ce que j'ai actuellement :
$perPage = 6;
$cPage = 1;
$sql = new ChansonSQL();
$data["chansons"] = $sql->prepareFindAll()
->orderBy("post_date DESC")
->limit(($cPage-1)*$perPage, $perPage)
->execute();
$sqlB = new ChansonSQL();
$data["nbChanson"] = $sql->prepareFindAll()
->execute();
$count = count($data["nbChanson"]);
$nbPage = ceil($count/$perPage);
echo $count;
for ($i = 1 ; $i <= $nbPage ; $i++) {
echo " <a href=\"?p=$i\">$i</a> /";
}
if(isset($_GET['p'])) {
$cPage = $_GET['p'];
}
echo $cPage;
Je récupère bien le nombre de pages existantes, le bon nombre de chansons apparaît pour une page, lorsque je survole (ou clique) sur les numéros de page, mon url passe bien à ?p=2 etc... cependant, ce sont toujours les mêmes chansons qui sont affichées.
J'aurai donc tendance à dire que le problème provient du premier paramètre de "limit" mais je ne parviens à trouver le problème exact...
Je pense avoir conscience que cette manière de faire n'est pas adaptée au MVC, mais je n'ai pour le moment pas trouver d'autres moyens de faire... tout cela se trouvant dans les Controller, l'affichage n'est pas optimal non plus...
Avez-vous d'autres méthodes à me conseiller ? Ou est-il quand même possible de faire comme ceci mais en ayant un affichage correct ?
Je vous remercie d'avance !