Pagination avec SQL
Erwin
-
kari83 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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.
Je travaille en coldfusion et sql server 2000.
Merci.
A voir également:
- Pagination avec SQL
- Pagination powerpoint - Guide
- Logiciel sql - Télécharger - Bases de données
- Sommaire avec pagination - Guide
- Indesign pagination à partir de la 2ème page - Forum InDesign
- Requete sql pix - Forum PHP
1 réponse
$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;
}}?>
<?}
}
$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;
}}?>
<?}
}