Problème Pagination

cybereco
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 19 Aoû 2011

Problème Pagination

Message le Dim Déc 18, 2011 9:50

Bonjour,

Voici mon problème : lorsque j'utilise plusieurs variables ($sql = "SELECT COUNT(id) as nbArt FROM news WHERE position = '$position' AND lemag = '$mag' AND genre = '$genre'";),

ma pagination lorsque j'appelle la page .../lemag/chronique-un-lieu-une-histoire.php? s'affiche ainsi : -4 -3 -2 -1 0 (il ne devrait pas y a voir de page 0 et je ne devrais a priori obtenir -1, -2, -3 etc...). Ce script fonctionne impec avec 1 seule variable ($sql = "SELECT COUNT(id) as nbArt FROM news WHERE position = '$position'";).

Je n'arrive pas à trouver la logique pour inverser le sens de ma pagination (qui est certainement évidente et sous mes yeux, mais après plusieurs tests, je n'ai rien obtenu de mieux). Votre aide me serait alors précieuse et je vous en remercie.

Voici mon code :
Code: Tout sélectionner
<?php
   
   /*
   Connexion à   la BDD
   */
   require "connect.php";
   mysql_connect($adresse, $nom, $motdepasse);
   mysql_select_db($database);
   
   $position = 'on';
   $sql = "SELECT COUNT(id) as nbArt FROM news WHERE position = '$position'";
   $req = mysql_query($sql) or die(mysql_error());
   $data = mysql_fetch_assoc($req);
     
   $nbArt = $data['nbArt'];
   $perPage = 7;
   $nbPage = ceil($nbArt/$perPage);
   $cPage = 1;
   
   if(isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$nbPage){
   $cPage = $_GET['p'];
   }   
   {   
   $sql = "SELECT * FROM news WHERE position = '$position' ORDER BY id DESC LIMIT ".(($cPage-1)*$perPage).",$perPage";
   $req = mysql_query($sql) or die(mysql_error());
   while($data = mysql_fetch_assoc($req)){
           
            ?>   

<ul class="contentlist"><h2><span
class="surtitre"><?php echo $data['commune'];?></span></h2>
<li class="article"> <a class="photo" title="<?php echo $data['titre'];?>"
<a
href="/article/<?php echo $data['id'];?>-<?php echo $data['url'];?>.html"> <img
style="border: 0px solid ; width: 170px; height: 138px;"
src="<?php echo $data['photo'];?>"</a>
     <h2><a
href="/article/<?php echo $data['id'];?>-<?php echo $data['url'];?>.html"> <?php echo stripslashes($data['titre']);?></a></h2>
     
      <div class="contenu"><?php echo stripslashes($data['description']);?></d>
     <div class="infosPlus"><a
href="/article/<?php echo $data['id'];?>-<?php echo $data['url'];?>.html">Lire plus</a></div>
      <div class="infosTxt"> <span class="publication">Article de <?php echo $data['auteur'];?> pour Flashwebdo - publié le : <?php echo date("d/m/Y G:i", strtotime($data['date'])); ?></span><span class="medias">    </div>
</li>   

      <?php
     
   }
   }
   
   
   ?>
      <div class="pager">
<div class="resultat_pager"><?php
$nbPage=ceil($nbArt/$perPage);
if(!empty($_GET['p'])){$page=$_GET['p'];}else{$page=1;}
if($page>1){
   echo "<a class='pager_deb disabled' title='premi&#232;re page' href=\"?p=1\"<span>Premi&#232;re page</span>";
   $precedent=$page-1;
   echo "<a class='pager_pct disabled' title='page pr&#233;c&#233;dente' href=\"?p=$precedent\"<span>Page

                              pr&#233;c</span></a>&nbsp;";
}
if($page>2){
     $debut=$page-2;
}else{
     $debut=1;
}
if($page<$nbPage-2){
     $fin=$debut+4;
}else{
     $debut=$nbPage-4;
     $fin=$nbPage;
}
for($i=$debut;$i<=$fin;$i++){
    if($page==$i){
        echo $i;
    }else{
        echo "<a href=\"?p=$i\">$i</a>&nbsp;";
    }
}
if($page<$nbPage){
   $suivant=$page+1;
   echo "<a class='pager_svt' title='page suivante' href=\"?p=$suivant\">page suiv</a>";
   echo "<a class='pager_fin' title='derni&#232;re page' href=\"?p=$nbPage\"><span>Derni&#232;re page

                              </span></a>";
}
?>
       </div>
  </div>
</ul><br>

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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