Problème de pagination à cause de request

reyterg Messages postés 21 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 25 octobre 2004 - 19 mars 2004 à 10:44
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 - 9 août 2004 à 16:00
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>
A voir également:

4 réponses

dupython Messages postés 4 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 19 mars 2004
19 mars 2004 à 17:25
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 + !
0
reyterg Messages postés 21 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 25 octobre 2004
19 mars 2004 à 18:06
Merci, ça marche au poil.
Bon week-end
0
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
9 août 2004 à 16:00
et si on veut des numéros 1,2,3.... a la place de "suite" et "retour" ?

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

merci de votre aide !!
0
Rejoignez-nous