Bonsoir,

Je poste ce sujet car je rencontre un petit prôbléme sur le Système de pagination que je suis entrain de faire.
Le systéme marche trais bien mais le seul prôbléme c'est que j'arrive pas a afficher les pagination avec la boucle for en php.

Voici ce que j'ai fait :

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

Ce code ne m'affiche rien.
La variable PageTotales contion le nombre de page.

Cordialement,

8 réponses


Valérian
Réponse acceptée

Je parle de la librairie PDO qui te permet de requêter ta base de données.
J'imagine que tu utilises celle fournit par PHP (http://php.net/manual/fr/book.pdo.php).
Si c'est le cas, ton problème vient de ton script pour récupérer le nombre d'annonces.

Ainsi, voici la correction :

$AnnonceTotalReq = $bdd->prepare('SELECT id FROM annonce');
$AnnonceTotalReq->execute(); // Il faut executer ta requête
$AnnonceTotal = $AnnonceTotalReq->rowCount();

Documentation ici : http://php.net/manual/fr/pdostatement.rowcount.php

Bonsoir,

Il nous faudrait sûrement un peu plus de code pour pouvoir t'aider...

Ta boucle semble correcte. Si elle n'affiche rien, c'est que $PageTotales doit être à 0. Fais un maximum de var_dump() pour trouver la source du problème.

JMERISE
Auteur

Voila le code que j'avais fait:

<?php
session_start();
require 'config_data.php';

$AnnonceParPage = 2;
$AnnonceTotalReq = $bdd->prepare('SELECT id FROM annonce');
$AnnonceTotal = $AnnonceTotalReq->rowCount();
if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0){
    $_GET['page'] = intval($_GET['page']);
    $PageCourante = $_GET['page'];
}else{
    $PageCourante = 1;
}

$PageTotales = ceil($AnnonceTotal/$AnnonceParPage);

$Depart = ($PageCourante-1)*$AnnonceParPage;

$ReqAnnonces = $bdd->query('SELECT * FROM annonce INNER JOIN membre ON annonce.id_users = membre.id ORDER BY annonce.id DESC LIMIT '.$Depart.', '.$AnnonceParPage.'');

?>

Merci.

Comme dit précédemment, fais un maximum de var_dump() pour connaître la valeur de tes variables.

En priorité : $AnnonceTotal et $PageTotales

JMERISE
Auteur

la variable PageTotales il contient 0 et $AnnonceTotal aussi

Ca veut sûrement dire que le problème vient de ta requête pour récupérer le nombre d'annonces puisque j'imagine que la table n'est pas vide.
Quel moteur PDO utilises-tu pour tes requêtes ?

JMERISE
Auteur

La table n'est pas vide, mais que veux tu dire par moteur PDO ?

JMERISE
Auteur

Ha, un grand merci a toi pour m'avoir aider :)