Problème de pagination à cause de request

Signaler
Messages postés
21
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
25 octobre 2004
-
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
10 avril 2006
-
Bonjour,

Comment puis-je paginer mes pages tout en gardant en mémoire ma requête SQL.

La question est simple et courante dans les sites dynamiques, mais je ne m'en sort pas. (pôôôvre novice que je suis)

L'affichage de la première page marche. Il affiche dans le navigateur:www.monsite.com/mapage.asp?rub=mode_homme

Par contre, quand j'utilise ma pagination pour aller en page 2, ça affiche dans le navigateur: www.monsite.com/mapage.asp?num=8

C'est normal, je vois bien qu'il y a une grosse erreur, mais je ne trouve pas comment faire. Dans mes tests, j'en suis arrivé à cette réponse de navigateur, mais sans succès: www.monsite.com/mapage.asp?rub&num=8

Merci de m'aider, je me noie

Le code de la page ci-dessous:

<code>Sql= "Select * from luxe WHERE rubrique='" & request("rub") & "' order by nom_sans_pub,nom_avec_pub asc;"

Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.open Sql,Conn,3,3

' On choisit de faire trois colonnes
Nbcol=2
NbTot=rs.recordcount' Il y a un total de NbTot enregistrements
Nmin = 4 ' nombre par colonne
Nmax=Nmin*NbCol
Ncur = 0 ' n° de la fiche courante
Ndeb = 0 ' 1ère fiche transmise par l'URL
if request.queryString("num")<>"" then _
Ndeb = Cint(request.queryString("num"))

' Il va falloir un certain nombre de lignes
if (NbTot/NbCol)=Cint(NbTot/NbCol) then
NbLigne=NbTot/NbCol
else
NbLigne=1+Cint(NbTot/NbCol)
end if
' Premier enregistrement
Lig=0 ' Pour savoir sur quelle ligne on est
response.write ""
while not RS.eof and Ncur<Nmax+Ndeb
' si elle est à afficher
if Ncur >= Ndeb then
response.write " " & rs("nom_sans_pub")&" " & rs("nom_avec_pub")&" [Fiche info]
"&rs("signalement_liste")&"

[Aller sur le site internet] "&rs("zevent")&"
"
Lig=Lig+1
If Lig=Nmin then response.write ""%>
<table cellpadding=3>
----

<% ' Navigation
' Des fiches avant ?
if Ndeb > 0 then%>, \">Retour
</td>
<%end if
' N° des pages
Npag = int(RS.recordCount/Nmax)
if Npag < RS.recordCount/Nmax then Npag = Npag + 1
for i = 1 to Npag%>
<% ' Page courante ?
if Ndeb = (i-1)*Nmax then%>
<%=i%>
<%else%>
"
><%=i%>
<%end if%>,
<%next
' Des fiches après ?
if not RS.eof then%>
">Suite,
<%end if
RS.close : set RS=nothing%>

<%
conn.close
set conn=nothing
%>

</td></tr></table>

4 réponses

Messages postés
4
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
19 mars 2004

Salut !

D'abord, n'utilise pas request("rub") mais request.querystring("rub")...
Ca a rien a voir mais ca m'a fait mal aux yeux...
Sauf si tu as une bonne raison, dans ce cas donne la moi ca m'interesse.
Sinon pour ton probleme, ca me parait assez simple :

[?num=<%=Ncur%>&rub=<%request.querystring( ">Suite]

J'espere que je répond bien a ta question ! A + !
Messages postés
21
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
25 octobre 2004

Merci, ça marche au poil.
Bon week-end
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
10 avril 2006
1
et si on veut des numéros 1,2,3.... a la place de "suite" et "retour" ?

merci de m'aider !!
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
10 avril 2006
1
et si on veut des numéros 1,2,3.... a la place de "suite" et "retour" ?

merci de votre aide !!