Bon voici donc un exemple tiré d'un site de gestion de bulletins scolaires :
Je te le commente en rouge
function NavigueBulletin($cle,$anneebull,$nosection,$script,$voirvalide)
{
// Affiche lien vers le bulletin suivant et précédent dans l'ordre alpha de la section
// La requête qui me retourne la liste des clés (ici avec des critères de sélection passés en paramètres de la fonction)
$query="SELECT T1.NoBull FROM bulletin T1 LEFT JOIN eleve T2 ON (T1.NoEleve=T2.NoEleve)
WHERE (T1.AnneeBull='$anneebull') AND (T1.NoSection='$nosection') ";
if ($voirvalide<>"O") $query .= "AND (T1.Valider<>'1') ";
$query .= "ORDER BY T2.NomEleve,T2.PrenomEleve";
$result = mysql_query($query) or die ("Requête sélection bulletin incorrecte ".mysql_error());
// Chargement du résultat dans un tableau
$tab=array();
while ($row = mysql_fetch_array($result))
$tab[]=$row[NoBull];
mysql_free_result($result);
// Chercher dans le tableau l'élément clé ($clé) passé en paramètre à la fonction.
// Une fois trouvé on regarde s'il y a un élément précédent et on l'affect à $p puis s'il y a un élément suivant et on l'affecte à $s
for($i=0;$i<=count($tab)-1;$i++)
{
if ($tab[$i]==$cle)
{
if ($i==0)
$p=0;
else
$p=$tab[$i-1];
if ($i==count($tab)-1)
$s=0;
else
$s=$tab[$i+1];
break;
} //endif
} //endfor
// si on a un élément précédent on construit un lien "Précédent"
if ($p<>0)
{
$lien=$script."&cle=$p";
echo("<a href=\"$lien\">Précédent</a>");
} //endif
// si on a un élément suivant on construit un lien "Suivant"
if ($s<>0)
{
$lien=$script."&cle=$s";
if ($p<>0) echo(" \n");
echo("<a href=\"$lien\">Suivant</a>");
} //endif
}
Bon c'est un exemple que j'ai écrit et qui fonctionne pour moi, cela ne prétend pas être "la" vérité
