Systeme de pagination

Toutes les questions et les aides qui concernent le langage PHP
Orfeo
Tutomaker Junior
Tutomaker Junior
 
Messages: 7
Enregistré le: Ven Avr 16, 2010 1:05 pm

Systeme de pagination

Messagepar Orfeo le Ven Avr 16, 2010 1:14 pm

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.

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: Systeme de pagination

Messagepar Yoyo le Ven Avr 16, 2010 9:05 pm

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 :)
Vive les tutomakers ;)

Orfeo
Tutomaker Junior
Tutomaker Junior
 
Messages: 7
Enregistré le: Ven Avr 16, 2010 1:05 pm

Re: Systeme de pagination

Messagepar Orfeo le Ven Avr 16, 2010 10:00 pm

je te remercie pour ton aide. Cela fonctionne à merveille. :).



  • { SIMILAR_TOPICS }
    Réponses
    Forum

Retourner vers Langage PHP

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités