slashf
Messages postés87Date d'inscriptionvendredi 24 mars 2006StatutMembreDernière intervention14 janvier 2011
-
8 mars 2009 à 13:31
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
8 mars 2009 à 22:31
bonjour a tous, voilà mon petit souci j'ai cherché sur google mais rien :( du coup j'ai pas eu le choix que de poster ce message, se que je cherche a faire c un affichage page par page jusque là c bon c fait, mais quand j'ai beaucoup de page genre 30 j'aimerai que seulement la 1er page et quelque page au milieu soit affiché ainsi que la page de la fin
exemple : 1 ... 5 6 7 8 9...30 dans cette exemple je suis a la page 7
mon bout de code est le suivant :
<?php //début
//affichage pages par pages
$nbpages=ceil($nb_total/$limit);
// affichage de la première page si nécessaire (si nb total de pages supérieur à 5)
if($nbpages>2 and $page>=1){
echo "<td width='23' height='19' align='center' class='nb_recherche'> 1 </td> ";
echo "<td width='23' height='19' align='center' class='nb_recherche'> ... </td> ";
}
//
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES EST 0)
if ($page>0){
$precedent=$page-1;
echo "<td width='31' height='19' align='center' class='nb_recherche'> << </td>";
} /////
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nb_total>$limit){
while($i<($nbpages)){ // pour limiter l'affichage du nombre de pages restantes
if ($i>$page-2 and $i<$page+6){ //
if($i!=$page)
{echo "<td width='23' height='19' align='center' class='nb_recherche'> $j </td>";}
else {echo "<td width='23' height='19' align='center' class='nb_rechercheOn'> $j </td>";}//met en gras le N° de la page en cours
}//fin du if i>pge....
$i++;$j++;}//fin du while i<nbpages
} //fin du if nbT>limit////////////////////////:
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($page<$nbpages-1){
$suivant=$page+1;
echo "<td width='31' height='19' align='center' class='nb_recherche'> >> </td>";
}
// affichage de la dernière page si nécessaire
if($nbpages>3 and $page<$nbpages-3){
$fin=$nbpages-1;
echo "<td width='31' height='19' align='center' class='nb_recherche'>Fin</td>";
}// fin du else affichage des résultats.
// fin du si il y a eu saisie
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 8 mars 2009 à 22:31
salut
pour commencer une question de style :
90% de tes commentaires sont inutils, ils nous perdent dans des infos sans interret, et ca nous embrouille en plus de nous faire perdre notre temps
ton indentation nuit a la comprehention du script
utilise && et pas and quand tu ne fais pas d'effets de bords, car && est plus rapide.
utilise les boucles for plutot que while quand elles conviennent mieux.
a premiere vue, ca donnerait qqch comme ca :
<?php
$nbpages=ceil($nb_total/$limit);
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES n'est pas 0)
if ($page != 0){
$precedent=$page-1;
echo "<td width='31' height='19' align='center' class='nb_recherche'> << </td>";
}
// affichage de la première page si nécessaire (si nb total de pages supérieur à 5)
if($nbpages>2 && $page>=1){
echo "<td width='23' height='19' align='center' class='nb_recherche'> 1 </td> ";
echo "<td width='23' height='19' align='center' class='nb_recherche'> ... </td> ";
}
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($page != $nbpages-1){
$suivant=$page+1;
echo "<td width='31' height='19' align='center' class='nb_recherche'> >> </td>";
}
// affichage de la dernière page si nécessaire
if($nbpages>3 && $page<$nbpages-3){
$fin=$nbpages-1;
echo "<td width='31' height='19' align='center' class='nb_recherche'>Fin</td>";
}