begin process at 2008 08 07 21:46:03
1 223 132 membres
473 nouveaux aujourd'hui
14 227 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PAGINER LES RÉSULTATS D'UNE REQUÊTE


Information sur la source

Catégorie :Astuces Classé sous : requete, paginer, résultat Niveau : Expert Date de création : 26/04/2002 Date de mise à jour : 26/04/2002 15:25:14 Vu / téléchargé: 9 234 / 153

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Voici un petit code source qui vous permettra de paginer en numéro de pages les résultats que vous renvoie une requête.
Vous pouvez spécifier :
- le nombre de résulats par page
- le nombre de numero de pages affichées
          

Source

  • <HTML>
  • <HEAD>
  • <link rel="stylesheet" type="text/css" href="style.css">
  • </HEAD>
  • <!-- Requête de sélection des produits -->
  • <cfquery name="listproduit" datasource="pagination">
  • SELECT * FROM PRODUIT
  • </cfquery>
  • <!-- A vous de paramétrer ces 2 variables -->
  • <cfset NbNumberPage = 5> <!-- Nombre de numéros de pages affichées -->
  • <cfset NbEnregByPage = 10> <!-- Nombre d'enregistrements par page -->
  • <cfset NbPage = (listproduit.recordcount \ NbEnregByPage)>
  • <cfif #evaluate(listproduit.recordcount mod NbEnregByPage)# is not 0>
  • <cfset NbPage = NbPage + 1>
  • </cfif>
  • <cfset url.corps="cf_produit_liste.cfm">
  • <cfif IsDefined('url.page')>
  • <cfset recherche_debut=((url.page-1)*NbEnregByPage)+1>
  • <cfelse>
  • <cfset recherche_debut=1>
  • <cfset url.page = 1>
  • </cfif>
  • <cfoutput>URL PAGE : #url.page#</cfoutput>
  • <BODY bgcolor=white vlink=gray alink=gray>
  • <font face="Verdana, Arial, Helvetica, sans-serif">
  • <cfif listproduit.recordcount GT 0>
  • <center>
  • <cfoutput>
  • Page #url.page# / #NbPage#<br><br>
  • <font color="red">#listproduit.recordcount# produits(s) trouvé(s)</font><br><br>
  • </cfoutput>
  • <cfif url.page GT NbNumberPage>
  • <cfoutput>
  • <a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate((((url.page\NbNumberPage)*NbNumberPage)+1) - NbNumberPage)#"><b>[<<]</b></a>
  • </cfoutput>
  • </cfif>
  • <cfif url.page GT 1>
  • <cfoutput>
  • <a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate(url.page - 1)#"><b>[<]&nbsp;</b></a>
  • </cfoutput>
  • </cfif>
  • <cfif listproduit.recordcount GT NbEnregByPage>
  • <cfoutput>
  • <cfloop index="curpg" from="#Evaluate(((url.page\NbNumberPage)*NbNumberPage)+1)#" to="#Evaluate((((url.page\NbNumberPage)+1)*NbNumberPage))#" step="1">
  • <cfif listproduit.recordcount gt (curpg - 1) * NbEnregByPage>
  • <cfif curpg is not url.page>
  • <a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#curpg#">[#curpg#]</a>
  • <cfelse>
  • [#curpg#]
  • </cfif>
  • </cfif>
  • </cfloop>
  • </cfoutput>
  • </cfif>
  • <cfif url.page * NbEnregByPage lt listproduit.recordcount>
  • <cfoutput>
  • <a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate(url.page + 1)#"><b>[>]</b></a>
  • </cfoutput>
  • </cfif>
  • <cfif (url.page\NbNumberPage) lt (listproduit.recordcount\(NbEnregByPage*NbNumberPage))>
  • <cfoutput>
  • <a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate((((url.page\NbNumberPage)+1)*NbNumberPage)+1)#"><b>[>>]</b></a>
  • </cfoutput>
  • </cfif><br><br><br>
  • <cfoutput query="listproduit" startrow="#recherche_debut#" maxrows="#NbEnregByPage#">
  • Réference : #PROD_ID#<br>
  • </cfoutput>
  • </center>
  • </cfif>
  • </FONT>
  • </BODY>
  • </HTML>
<HTML>
<HEAD>
	<link rel="stylesheet" type="text/css" href="style.css">
</HEAD>

<!-- Requête de sélection des produits -->
<cfquery name="listproduit" datasource="pagination">
	SELECT * FROM PRODUIT
</cfquery>

<!-- A vous de paramétrer ces 2 variables -->
<cfset NbNumberPage = 5>	<!-- Nombre de numéros de pages affichées -->
<cfset NbEnregByPage = 10>	<!-- Nombre d'enregistrements par page -->

<cfset NbPage = (listproduit.recordcount \ NbEnregByPage)>

<cfif #evaluate(listproduit.recordcount mod NbEnregByPage)# is not 0>
	<cfset NbPage = NbPage + 1>
</cfif>

<cfset url.corps="cf_produit_liste.cfm">
	
<cfif IsDefined('url.page')>
	<cfset recherche_debut=((url.page-1)*NbEnregByPage)+1>
<cfelse>
	<cfset recherche_debut=1>
	<cfset url.page = 1>
</cfif>
<cfoutput>URL PAGE : #url.page#</cfoutput>

<BODY bgcolor=white vlink=gray alink=gray>
	<font face="Verdana, Arial, Helvetica, sans-serif">
		<cfif listproduit.recordcount GT 0>
			<center>
				<cfoutput>
					Page #url.page# / #NbPage#<br><br>
					<font color="red">#listproduit.recordcount# produits(s) trouvé(s)</font><br><br>
				</cfoutput>
						
				<cfif url.page GT NbNumberPage>
					<cfoutput>
						<a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate((((url.page\NbNumberPage)*NbNumberPage)+1) - NbNumberPage)#"><b>[<<]</b></a>
					</cfoutput>
				</cfif>
								
				<cfif url.page GT 1>
					<cfoutput>
						<a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate(url.page - 1)#"><b>[<]&nbsp;</b></a>
					</cfoutput>
				</cfif>
								
				<cfif listproduit.recordcount GT NbEnregByPage>
					<cfoutput>
						<cfloop index="curpg" from="#Evaluate(((url.page\NbNumberPage)*NbNumberPage)+1)#" to="#Evaluate((((url.page\NbNumberPage)+1)*NbNumberPage))#" step="1">
							<cfif listproduit.recordcount gt (curpg - 1) * NbEnregByPage>
								<cfif curpg is not url.page>
									<a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#curpg#">[#curpg#]</a>
								<cfelse>
									[#curpg#]
								</cfif>
							</cfif>
						</cfloop>
					</cfoutput>
				</cfif>
								
				<cfif url.page * NbEnregByPage lt listproduit.recordcount>
					<cfoutput>
						<a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate(url.page + 1)#"><b>[>]</b></a>
					</cfoutput>
				</cfif>
				
				<cfif (url.page\NbNumberPage) lt (listproduit.recordcount\(NbEnregByPage*NbNumberPage))>
					<cfoutput>
						<a href="#CGI.PATH_INFO#?corps=#url.corps#&page=#Evaluate((((url.page\NbNumberPage)+1)*NbNumberPage)+1)#"><b>[>>]</b></a>
					</cfoutput>
				</cfif><br><br><br>
				
				<cfoutput query="listproduit" startrow="#recherche_debut#" maxrows="#NbEnregByPage#">
					Réference : #PROD_ID#<br>
				</cfoutput>
			</center>
		</cfif>
	</FONT> 
</BODY>
</HTML>           

Conclusion

Comme d'habitude, si vous avez des améliorations, n'hésitez pas à m'en faire part ;-)          
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de kani le 01/06/2002 15:38:07

    Salut skyrid je suis debutant en la matiére et j'aesssaie d'utiliser le code source pour paginer une recherche mais ca bloque au niveau de #PROD_ID#. Le server m'envoie le msg d'erreur suivant: Error resolving parameter PROD_ID

    "...ColdFusion was unable to determine the value of the parameter. This problem is very likely due to the fact that either:

    You have misspelled the parameter name, or
    You have not specified a QUERY attribute for a CFOUTPUT, CFMAIL, or CFTABLE tag.

    The error occurred while processing an element with a general identifier of (#PROD_ID#), occupying document position (81:17) to (81:24)....". Je comprend la signification du message et je verifier l'ortho. du parametre qui est correctement écrit mais j'ai tjr ce messagge
    merci

  • signaler à un administrateur
    Commentaire de Skyride le 01/06/2002 21:14:43

    Salut Kani
    Afin de tester mon exemple, j'ai pris en condidération une table PRODUIT avec comme champs PROD_ID.
    Afin de pouvoir rendre fonctionnel ce code, tu dois créer une base access avec une table PRODUIT et un champs de type integer PROD_ID

    Voila

    Bon courage

  • signaler à un administrateur
    Commentaire de kamel_ le 18/03/2004 12:08:31

    Salut

    je te remercie bps pour ce code source pour la pagination, moi je rencontre un pb c est ke quand il m'affiche le resultat de ma requete : il affiche bien les [1][2][3]....mais qd je clique sur l une des page il affiche pas la suite des enregistrements et je sais pas pkoi.
    je penses que c est du au url.corps, c koi exactement ca ?
    Peux tu m aider merci.

  • signaler à un administrateur
    Commentaire de je182th le 21/01/2008 12:22:32

    Bonjour,

    J'utilise cette source pour mon projet, mais je rencontre un problème...
    En fait l'affiche de la requete à lieu grace a une liste déroulante :

    fichier : search.cfm

    <CFQUERY name="req" datasource="data">
    SELECT *
    from fonction
    ORDER BY libelle_fonction
    </CFQUERY>

    <CFFORM method="post" action="result.cfm">
    <CFSELECT query="req" name="fonction.id_fonction" value="id_fonction" display="Libelle_fonction">
    </CFSELECT>
    <input type="submit" value="Rechercher">
    </CFFORM>

    fichier result.cfm

    <CFQUERY name="requete" datasource="data">
    SELECT Libelle_offre, offre.Libelle_Fonction, Date_prop, Nom_Region
    FROM Fonction, offre
    WHERE fonction.Id_fonction=offre.id_fonction
    And offre.Id_fonction=#fonction.id_fonction#
    </CFQUERY>


    voila l'erreur rencontrée:

    Element ID_FONCTION is undefined in FONCTION.

    The error occurred in C:\Program Files\xampp\htdocs\result.cfm: line 6

    FROM Fonction, offre
    WHERE fonction.Id_fonction=offre.id_fonction
    And offre.Id_fonction=#fonction.id_fonction#
    </CFQUERY>

Ajouter un commentaire

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS