Systeme de pagination
Posté: 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:
Fin qui permet de placer le nombre de page:
Merci d'avance pour vos nombreuses réponses.
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']))
{
$requete= mysql_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 = 1 ; $i <= $nombreDePages ; $i++)
{
if(!empty($_GET['lettre']))
{
$lien_affichage = '<a href="connexion.php?lettre='. $_GET['lettre'] .'&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.