Page 1 sur 1

Systeme de pagination

MessagePosté: Ven Avr 16, 2010 1:14 pm
par Orfeo
Bonjour, je réalise une site avec un système d'actualiter. Le problème c'est que lorsque je définit un nombre d'actualité par page sa me l'affiche correctement. Cependant, quand je passe à l'ensemble d'une catégorie. le nombre de page reste le mémé et seul le lien change.
Je me retrouve donc avec des articles sur la page 1 alors que sur la page 2 je nais plus rien.

Voilà le code:

début:
Code: Tout sélectionner

$nombreDeMessagesParPage 
10
$retour mysql_query("SELECT COUNT(*) AS nb_messages FROM site_actualite");
$donnees mysql_fetch_array($retour);$totalDesMessages $donnees['nb_messages'];
$nombreDePages  ceil($totalDesMessages $nombreDeMessagesParPage);

if (isset(
$_GET['affichage']))
{
$affichahe intval($_GET['affichage']);
}
else
{
$affichage 1;

$premierMessageAafficher = ($affichage 1) * $nombreDeMessagesParPage;



if(!empty(
$_GET['id']))
{
   
$requetemysql_query('SELECT * FROM site_actualite WHERE id=\'' $_GET['id'] . '\'');
}
else
{
   if(!empty(
$_GET['categorie']))
   {
      
$requete=mysql_query('SELECT * FROM site_actualite WHERE categorie=\'' $_GET['categorie'] . '\' ORDER BY id DESC LIMIT ' $premierMessageAafficher ', ' $nombreDeMessagesParPage);
   }
   else
   {
   
$requete=mysql_query('SELECT * FROM site_actualite ORDER BY timestamp DESC LIMIT ' $premierMessageAafficher ', ' $nombreDeMessagesParPage);
   }
}
 



Fin qui permet de placer le nombre de page:

Code: Tout sélectionner

<?php
echo '<strong>Page :</strong> ';
for (
$i $i <= $nombreDePages $i++)
{
    if(!empty(
$_GET['lettre']))
    {
        
$lien_affichage '<a href="connexion.php?lettre='$_GET['lettre'] .'&amp;affichage=' $i '">' $i '</a> '
    }
    else
    {
        
$lien_affichage '<a href="connexion.php?affichage=' $i '">' $i '</a> ';
    }
    echo 
$lien_affichage ;
}
mysql_close();
?>


Merci d'avance pour vos nombreuses réponses.

Re: Systeme de pagination

MessagePosté: Ven Avr 16, 2010 9:05 pm
par Yoyo
salut, je crois avoir trouvé ton problème. Le souci c'est que tu calcules $nombreDePages en fonction de toutes tes actualités sans prendre en compte les catégories éventuelles. Donc après quand tu veux afficher toutes les actus d'une catégorie, tu ne dois calculer un autre $nombreDePages qui correspond au nombre d'actualité pour cette catégorie et pas pour l'ensemble des actualités.

Donc en gros tu dois calculer plusieurs $nombreDePages à partir de différentes requêtes suivant le filtrage par catégories ou non.

Exemple:

Code: Tout sélectionner
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM site_actualite");
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM site_actualite WHERE categorie = ...");
etc... 


Tu comprends le problème ? Si tu calcules le nombre de pages pour tout tes articles (imaginons 10, soit 2pages de 5) mais qu'il y en a que 2 articles pour la catégorie visée, il va créer le nombre de pages qu'il faut pour 10 articles alors que tu ne veux qu'en afficher 2 :)

Re: Systeme de pagination

MessagePosté: Ven Avr 16, 2010 10:00 pm
par Orfeo
je te remercie pour ton aide. Cela fonctionne à merveille. :).