Decouper le resultat d'une requete sur plusieurs pages

Contenu du snippet

Bon c'est du déjà vu, mais celui ci permet aux handicapés de se balader de pages en pages, grâce notamment aux tabindex et au fait que tous les numéros de pages soient affichés, aussi c'est adaptable à toutes les résolutions d'écran.
Aussi grâce à CSS c'est très "customisable".
Bon je pense qu'on peut encore l'améliorer notamment à ce niveau "$page = "trombinoscope.php?";" mais je ferais ça dans une prochaine Maj si j'ai le temps.
Laisser moi vos commentaires ;)

Source / Exemple :


##########################
La fonction :
##########################

<?php
//Fonction découp_page
//Par Mathis_mathis(at)hotmail.com
//Merci à crapo

function decoupe_page($page, $rqt, $nb_enreg, $lim)
{

  if($lim==""){$lim=0;}
  
  $tab[0]= mysql_query("$rqt LIMIT $lim, $nb_enreg");
  $tab[1] = mysql_query($rqt)or die("ERREUR REQUETE DECOUPE PAGE :".mysql_error()); //requete
  $tab[2]= mysql_numrows($tab[1]); //nombre de ligne en tout

  if ($tab[2] > $nb_enreg) //si le nombre de ligne en tout est superieur au nombre de ligne a afficher
  {
    $i=1; 
	$j=0;

    $max= $tab[2]/$nb_enreg; //on divise le nombre de total de ligne par le nombre de ligne a afficher
    $max=ceil($max); //le resultat est un nombre arrondi

    $tab[3] = "<ul>\n<li>Page : </li>\n";
	
	$tabindex=500;
	
	if ($lim!=0)
    { 
	$tab[3] .= "<li><a href='".$page."lim=".($lim-$nb_enreg)."' title='Aller a la page precedente' tabindex='$tabindex'> <<</a></li>\n";
	}
	

    while ($i <= $max)
    { 
	  $tabindex++;
      if($lim==$j){$tab[3] .= "<li class=\"decoup_page_actif\">$i</li>\n";} 
      else {$tab[3] .= "<li><a href=\"".$page."lim=$j\" title=\"Aller a la page $i\" tabindex=\"$tabindex\">$i</a></li>\n";}
      $j+=$nb_enreg;
      $i++;
	  
    }
	
	if ($lim<($tab[2]-$nb_enreg))
    {
	$tab[3] .= "<li><a href='".$page."lim=".($lim+$nb_enreg)."' title='Aller a la page suivante'  tabindex='".($tabindex+1)."'>>></a></li>";
 	}
	
    $tab[3] .= "</ul>\n"; 
  }
  return $tab;
}
?>

##########################
Appel de la fonction :
##########################
<?php
//Appel de la fonction de découpe automatique de la page
$nb_enreg = 50; //Nombre d'enregistrer visible par page
$page = "trombinoscope.php?"; //Nom de la page
$rqt ="SELECT photos FROM membres"; //Requete à executer
$lim = $_GET["lim"];
$pg = decoupe_page($page, $rqt, $nb_enreg, $lim);
echo"<div id=\"decoup_page\">$pg[3]</div>"; //Afichage du découpage
?>

##########################
Exemple présentation en CSS
##########################

/* ## PRESENTATION DECOUPE PAGE ## */
#decoup_page {
clear: both;
font-weight: bold;
margin:0px;
font-size:0.95em;
padding-bottom:10px;
}
#decoup_page li{
float:left; 
margin-right:3px;
list-style-type:none;
}
#decoup_page a{
color:#0000CC;
}
#decoup_page a:visited{
text-decoration:none;
}
.decoup_page_actif{
background-color:#FF6600;
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.