Bonjour,

je cherche à créer un système de pagination sur mon site. J'ai donc suivi le tutoriel de grafikart (qui est très bien expliqué, au passage).
Le seul problème est que je réalise le site suivant la structure MVC.
Je n'arrive pas à afficher les pages, je ne récupère pas les variables nbPage etc.

Voici mon code :

  $db = connect();
  $res = $db->query('SELECT COUNT(id) AS nb FROM actu WHERE statutActu = 0');
  $data = $res->fetch();
  $nb = $data['nb'];

  $nbActu = $nb;
  $pPage = 3;
  $nbPage = ceil($nbActu/$pPage);
  if(isset($_GET["p"]) && $_GET["p"]>0 && $_GET["p"]<=$nbPage){
    $cPage = $_GET["p"];
  }else{
    $cPage = 1;
  }
  $sql = "SELECT id, titre, contenu, date, statut FROM
  actu WHERE statut = 0 ORDER BY date ASC LIMIT ".(($cPage-1)*$pPage).",$pPage";

  try {
    $retour["donnee"] = $db->query($sql);
    $retour["erreur"] = "ok";
  } catch (PDOException $erreur) {
    $retour["donnee"] = $erreur->getMessage();
    $retour["erreur"] = "erreur";
  }
  return $retour;
  return $nb;
  return $nbActu;
  return $pPage;
  return $nbPage;

Cette fonction est dans le modèle, puis appellé dans le controleur. Je récupère bien les résultat de la requête. Dans mon fichier vue, j'ai mis ce code :

  for($i=1;$i<=$nbPage; $i++){
        echo "<a href='index.php?page=actualites&p=$i'>$i</a>";
      }

mais j'obtiens une erreur me disant que nbPage est indéfini.

Je n'arrive pas à récupérer le nombre de page/la pagination

Pouvez vous me donner des pistes svp ?

Merci :)

3 réponses


Basmo
Réponse acceptée

Salut, seul le premier return s'effectue.
En effet, la commande return termine la fonction !
Doc de la fonction return

Tu devrais plutôt construire un tableau qui contient un index nb, un index nbActu, etc. Dans ta vue, tu fais un extract du retour de ton controller. Logiquement, t'auras la variable nbPage ;)

Basmo à tout dit. Au return, la fontion s'arrête. Donc tu dois retourner un tableau.

cochi69
Auteur

Ah oui c'est vrai j'avais oublié !
J'essaie ça alors :)