Pagination avec SQL

Erwin -  
kari83 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
J'ai une table avec 10.000 enregistrements articles. Je souhaite paginer ces articles : par exemple par 10, je sélectionne donc les 10 premiers engts en utilisant select top 10 idarticle... ! Comment redémmarer la sélection des 10 suivants; car je ne peux pas tout charger d'un seul coup, trop lourd sur internet. Je voudrais aussi pouvoir proposer à l'utilisateur d'accéder au xème article, et proposer donc les 9 qui suivent. Je voudrais enfin proposer à l'utilisateur qu'il puisse faire previous et next pour atteindre les 10 engts précédents et les dix suivants.
Je travaille en coldfusion et sql server 2000.

Merci.
A voir également:

1 réponse

kari83 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   2
 
$query="select code_gest,libelle_gestf,libelle_gesta from gestionnaire";
$result=mysql_query($query); ?>

<script type="text/javascript">
function affichePage (nbpages,page){
for (i=1; i<=nbpages; i++){
if (i == page) {//Affichage du calque i
var divns6 = document.getElementsByTagName("div")
divns6["page"+i].style.display = "inline";
} else {//Ne pas afficher le calque i
var divns6 = document.getElementsByTagName("div")
divns6["page"+i].style.display = "none";
}
}
}
</script>
<?
$cpt = mysql_num_rows($result);//Nombre de résultats de la requète
$rpp = 25;//Nombre de résultats à afficher par page
$nbpages = ceil($cpt / $rpp);//Calcul du nombre de pages total
$cpt2 = 0;//Compteur permettant de limiter le nombre de résultats par page à rpp
$cpt3 = 0;//Compteur permettant vérifier lorsque tous les enregistrement ont étés parcourus
$cpt4 = 1;//Compteur permettant de donner un id à chaque calque
if ($nbpages > 1) {
//Affichage des liens vers les numéros de page
echo "<p class='ecran'>Page :";
for ($i=1; $i<=$nbpages; $i++) {
echo " <a href=\"#\" onClick=\"Javascript:affichePage(".$nbpages.",".$i.")\" class='ecran'>".$i."</a>";
}
echo "</p>";
}
while($ligne=mysql_fetch_array($result))
{
if ($cpt2 == 0) {
if ($cpt4 == 1) {//Lors de la requète, on affiche les premiers enregistrements
echo "<div id=\"page1\" style=\"display: inline;\">";
} else {//Ensuite, les enregistements suivants sont cachés
echo "<div id=\"page".$cpt4."\" style=\"display: none;\">";
}

//Affichage des calques ?>
<p align="center"><font size="4"> <b><i>Liste des gestionnaires (français/arabe)</b></i> </font></p>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="15%"><b>Code gestionnaire</b></td>
<td width="52%"><b>Gestionnaire </b></td>
<td width="52%"><b><p align="right">ÇáãÓíÑ </b></td>
</tr>
<? $cpt4++;
}
$cpt2++;
$cpt3++;
?>
<tr>
<td width="20%"> <? echo $ligne['code_gest']?></td>
<td width="38%"> <? echo $ligne['libelle_gestf']?></td>
<td width="42%"><p align="right"> <? echo $ligne['libelle_gesta']?></td>
</tr>
<?
if ($cpt2 == $rpp || $cpt3 == $cpt) {//Lorsque l'on affiché rpp enregistrements ou que tous les enregistrements ont été affichés, on ferme le calque
echo "</table></div>";
$cpt2 = 0;
}}?>

<?}
}
2