Probleme, fonction page précédente / suivante

Probleme, fonction page précédente / suivante - PHP - Programmation

Marsh Posté le 02-12-2009 à 02:06:20    

Bonjour, je crois que j'ai probablement uniquement un problème de visualisation de mon problème et que bloque pour ça, c'est pourquoi je sollicite votre aide.
 
J'utilise une fonction qui me permet d'afficher les numéros de pages en fonctions du nombre d'articles par page que je veux afficher.
 
Ex: [1] [2] [3] [4]
Elle fonctionne à merveille, mais je désire afficher un bouton suivant si je ne suis pas à la dernière page (et qu'il y en a plus qu'une), et un précédent si je ne suis pas à la première.
 
La structure de ma fonction est prête, mais comme je suis plutôt débutant en PHP et que ma fonction était déja construite, je ne sais pas quoi mettre dans ma balise if (et où la placer) pour que ça fonctionne. J'ai réussi le précédent, mais je n'arrive pas à réussir pour le Suivant...
 
Voici mon code:

Code :
  1. function pagesCategorie($start,$nombre,$requete,$url) { //affichage des lien des autres pages Catégories
  2. $start = doubleval($start);
  3. $nombre = doubleval($nombre);
  4. $nbligne = 13;
  5. if($start<=0) $start=0;
  6. if($nombre<=0) $nombre=10;
  7. if(strstr($url,"?" )) $url .= "&amp;start=";
  8. else $url.="?start=";
  9. $pagesno = "<table border=\"0\" cellpadding=\"4\">";
  10. $nbresult = $requete;
  11. $nbpages = ceil($nbresult/$nombre);
  12. $cligne = 1;
  13. for($i=1;$i<=$nbpages;$i++)
  14. {
  15. $s = ($i-1)*$nombre;
  16. if ($i <= 9) $ei = "".$i; else $ei = $i;
  17. if ($cligne == 1) $pagesno .= "<tr><td colspan=\"2\">";
  18. //Affichage du lien précédent
  19. if ($i == $ei && $dejaAffiche==0 && $start!=0){
  20.  $pagesno .= "<span class=\"pagelink2\">&nbsp;<a href=\"$url".($start-10)."\">Précédent</a>&nbsp;</span> ";
  21.  $dejaAffiche=1;
  22. }
  23. if ($s == $start) $pagesno .= "<span class=\"pagelink2\">&nbsp;$ei&nbsp;</span> ";
  24. else $pagesno .= "<span class=\"pagelink\">&nbsp;<a href=\"$url".(($i-1)*$nombre)."\">$ei</a >&nbsp;</span> ";
  25. $cligne++;
  26. if ($cligne == ($nbligne + 1))
  27. {
  28. $pagesno .= "</td></tr>";
  29. $cligne = 1;
  30. }
  31. }
  32. $pagesno .= "</td></tr></table>";
  33. return $pagesno;
  34. }


Message édité par seozus le 02-12-2009 à 02:07:36

---------------
www.failqc.com : FailBlog québécois
Reply

Marsh Posté le 02-12-2009 à 02:06:20   

Reply

Marsh Posté le 02-12-2009 à 10:19:09    

Si j'puis me permettre, le nom de tes variables n'est pas du tout explicite, c'est compliqué de lire le code :/
 
Sinon, pour commencer et nettoyer un peu ton code, y a ça qui est très bizarre : (ou alors faut qu'on m'explique :o)
 
if ($i <= 9) $ei = "".$i; else $ei = $i;
=> cette ligne ne sert à rien
 
Ligne suivante :  
if ($i == $ei && $dejaAffiche==0 && $start!=0){
$i == $ei est toujours réalisé vu la ligne précédente
$dejaaffiche n'est pas initialisé
 
Ensuite, la variable $nbresult ne sert à rien (autant utiliser $requete)
 
Et erso j'aime pas mettre un if/then/else le tout sur la même ligne, préfère une indentation sur 4 lignes, ou bien la syntaxe
 
$variable = (<condition> ) ? <valeur si condition réalisée) : <valeur si condition non réalisée)
 
Par exemple : $mikhail = ($moteur_a_eau == true) ? "génie" : "sqfp";

Reply

Marsh Posté le 02-12-2009 à 10:40:43    

pour ça c'est assez simple, si tu connais la page en cours et le nb de pages, t'as pas bcp à faire ...
 
if ($page_en_cours > 1)
echo '<a href="'.$ton_uri.'&amp;p='.($page_en_cours -1).'">Page précédente</a>';
 
if ($page_en_cours != $nb_pages)
echo '<a href="'.$ton_uri.'&amp;p='.($page_en_cours +1).'">Page suivante</a>';


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed