Problème de pagination
Posté : 22 sept. 2005, 20:56
Pour mon site, je propose les liens vers les nouveautés qui sont gérés par PHP/SQL dans une petite table. Jusque là, tout est ok. La pagination fonctionne correctement. Par contre, si je fais une sélection, ça fonctionne aussi, mais le nombre de page reste complet et une fois les premiers enregistrements présentés dans les premières pages, il continue à faire comme si il y avait l'ensemble des pages en proposant des pages vides...
Je ne sais pas si j'ai été clair. Voici le problème :
http://www.sentiers.be/principal.php?se ... uction=non
Il s'agit de l'ensemble des enregistrements
http://www.sentiers.be/principal.php?se ... uction=non
Et là, cliquez sur page 2 ou 3 et vous comprendrez le problème. Il ne devrait y avoir qu'une page et non trois...
Voici le code en question :
Je ne sais pas si j'ai été clair. Voici le problème :
http://www.sentiers.be/principal.php?se ... uction=non
Il s'agit de l'ensemble des enregistrements
http://www.sentiers.be/principal.php?se ... uction=non
Et là, cliquez sur page 2 ou 3 et vous comprendrez le problème. Il ne devrait y avoir qu'une page et non trois...
Voici le code en question :
<?php require "bienvenue/BIneuf/BIneufConfig.php";?>
<table width="670" class="TABpage">
<tr>
<td class="sous-titre"><h3>Actualité des chemins et sentiers</h3></td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><?php
// Début du tableau
echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\"\n";
echo "<tr height=\"20\" align=\"center\" valign=\"top\">\n";
echo "<td class=\"TABcolonne\" width=\"90\">Dates</td>\n";
echo "<td class=\"TABcolonne\" width=\"570\">Sujets</td>\n";
echo "</tr>\n";
// Liste des articles
if (!isset($debut)) $debut="0";
if (!isset($f)) $f=$npages;
// Ouverture de la BD $Articles
mysql_select_db($database_Articles, $Articles);
$requete = "SELECT * FROM articles WHERE theme = 'Actualité' AND typelangue = 'FR' ORDER BY date DESC LIMIT ".$debut.", ".$npages."";
$resultats = mysql_query($requete) or die ("<p align=center class=text>Lecture des articles impossible</p>");
$nb_resultats = mysql_num_rows($resultats);
$requete_nb = "SELECT * FROM articles";
$resultats_nb = mysql_query($requete_nb) or die ("");
$nb_resultats_nb = mysql_num_rows($resultats_nb);
$nb_pages = ceil($nb_resultats_nb/$npages);
// Liste des articles
while ($row = mysql_fetch_array($resultats)) {
$sujet = $row['sujet'];
$lien = $row['lien'];
$resume = $row['resume'];
$auteur = $row['auteur'];
$theme = $row['theme'];
$date = $row['date'];
list($annee,$mois,$jour) = split( '[/.-]', $date );
// Différence de dates pour la nouveauté des sujets
$timestamp = mktime(0,0,0,$mois,$jour,$annee);
$d2 = time();
$d3 = $d2 - $timestamp;
$d4 = floor($d3 / 86400);
if($d4>30){$nouveau="";}else{$nouveau="Nouveau";};
// Affichage du "par"
if ($auteur==""){$par="";}else{$par="par";};
echo "<tr>\n";
echo "<td bgcolor=\"#ECECEC\" width=\"90\" align=\"center\" valign=\"top\" class=\"sansretrait\">".$jour."/".$mois."/".$annee."<br><font size=\"1\" color=\"#FF0000\">".$nouveau."</font></td>\n";
echo "<td bgcolor=\"#ECECEC\" width=\"430\" align=\"left\" ><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td height=\"15\" valign=\"top\" class=\"sansretrait\"><strong><a href=\"".$lien."\">".$sujet."</a></strong><br><font size=\"1\" color=\"#BCBCBC\">".$par." ".$auteur."</font></td></tr><tr><td class=\"sansretrait\"><font size=\"1\">".$resume."</font></td></tr><tr><td height=\"5\"></td></tr></td></tr></table></td>\n";
echo "</tr>\n";
}
// Fin du tableau
echo "</table>\n";
// Fermeture de la BD $Articles
mysql_close($Articles);
echo"<br><center>\n";
echo"<font size=\"1\" color=\"#99CC33\" face=\"Verdana, Arial, Helvetica, sans-serif\">";
// Bouton "Précédent"
if ($debut!="0") {
$debut_new1=$debut-$npages;
$f_new1=$debut;
echo "<a href=\"principal.php?section=comprendre&langue=".$_SESSION['langue']."&page=COactualite&num=Liste&debut=$debut_new1&f=$f_new1\"><font color=\"#55811B\"> Précédent </font></a> | \n";
}
// Affichage n° pages
if ($nb_pages>"1") {
for ($i=0;$i<$nb_pages;$i++) {
if(isset($debut_page))
$debut_page=$debut_page+$npages;
else
$debut_page="0";
$f_page = $f_page+$npages;
$num_page=$i+1;
if($debut==$debut_page)
echo $num_page."\n";
else {
if ($debut_page<$nb_resultats_nb)
echo "<a href=\"principal.php?section=comprendre&langue=".$_SESSION['langue']."&page=COactualite&num=Liste&debut=$debut_page&f=$f_page\"><font color=\"#55811B\">".$num_page."</font></a> \n";
}
}
}
// Bouton "Suivant"
if ($f<$nb_resultats_nb) {
$debut_new2=$f;
$f_new2=$f+$npages;
echo "| <a href=\"principal.php?section=comprendre&langue=".$_SESSION['langue']."&page=COactualite&num=Liste&debut=$debut_new2&f=$f_new2\"><font color=\"#55811B\"> Suivant </font></a>\n";
}
echo"</font>"
?></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>