Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2007, 13h18   #1
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 317
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 317
Points : 35
Points : 35
Par défaut Pagination records base de données

Re,

Je n'arrive pas à trouver le script qui me permet de créer dynamiquement, la pagination d'une base de données dans des tableaux, c'est à dire afficher 3 records sur une ligne, et passer à la suite.

Si quelqu'un aurait un exemple à me donner, merci d'avance.

Denis
delavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 13h32   #2
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Essaye ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<html>
<head>
<title></title>
</head>
<body>
<%
DSN_BASE = "DBQ=" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "tabase.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN_BASE
Set RS = Server.CreateObject("ADODB.Recordset")
 
Nmax = 10 ' nombre par page
Ndeb = Cint(request.queryString("num"))
 
' nombre total de fiches
SQL="SELECT count(*) FROM tatable"
RS2 = conn.execute(SQL)
Ntotal = RS2(0) - 1 ' commence à 0
 
' sélectionne les fiches de la table
Set RS = server.createobject("ADODB.Recordset")
SQL="SELECT TOP " & (Ndeb+Nmax)_
   & ", * FROM tatable"
RS.Open SQL,Conn , 3, 3
 
' Avance à la 1ère
RS.Move(Ndeb)
' tant qu'il reste des fiches
while not RS.eof
' affiche le champ
response.write RS("nomduchamp") & "<br>"
' fiche suivante
RS.MOVENEXT
wend%>
<br>
<table cellpadding=3><tr>
<% ' NAVIGATION
' Des fiches avant ?
if Ndeb > 0 then%>
<td>
<A href="?num=0">Début</A>
<A href="?num=<%=Ndeb-Nmax%>">Retour</A>
</td>
<%end if%>
<td>
<% ' Page courante
Npag = int(Ndeb/Nmax)+1 : Npag2 = Npag-1
tmp = "<b>" & Npag & "</b>"
' Max 9 pages avant
while Npag2>0 AND Npag2>Npag-10
   tmp = "<A href='?num=" & ((Npag2-1)*Nmax)_
      & "'>" & Npag2 & "</A> " & tmp
   Npag2 = Npag2-1
wend
' Max 9 pages après
Npag2 = Npag
while Npag2*Nmax<=Ntotal AND Npag2<Npag+9
   Npag2 = Npag2+1
   tmp = tmp & " <A href='?num=" & ((Npag2-1)*Nmax)_
      & "'>" & Npag2 & "</A>"
wend
response.write tmp
%>
   </td>
<% ' Des fiches après ?
if Ntotal>Ndeb+Nmax then%>
   <td>
      <A href="?num=<%=Ndeb+Nmax%>">Suite</A>
<A href="?num=<%=int(Ntotal/10)*10%>">Fin</A>
   </td>
<%
end if
Set RS = Nothing
Conn.Close
Set Conn = Nothing  
%>
 
</tr></table>
 
</BODY></HTML>
 
 
 
</body>
</html>
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 16h10   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 317
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 317
Points : 35
Points : 35
Merci pour ta réponse,

Mais ce n'est pas tout à fait ce que j'attend, j'aimerai que l'on ai par exemple 3 records affichés sur la même ligne, et ensuite, passer à la ligne suivant avec les autres records.

Denis
delavega est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h08   #4
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Ah ok excuse, dans ce cas tu fais un modulo

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<%
i=1
Do while not rs.eof
  if i Mod 3 = 0 Then
       Response.write "<tr><td>"& Rs("champ") &"></td></tr>"
 Else
      Response.write "<td>"& Rs("champ") &"</td>"
End if
i=i+1
Rs.movenext
Loop
%>
Sa te donne ça en gros.
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 11h07   #5
Membre expérimenté
 
Avatar de Phiss
 
Homme
Développeur Web
Inscription : mai 2005
Messages : 660
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2005
Messages : 660
Points : 581
Points : 581
a mon avis cela va pas marcher super bien...

Citation:
Code :
1
2
3
4
5
6
7
8
9
i=1
Do while not rs.eof
  if i Mod 3 = 0 Then
       Response.write "<tr><td>"& Rs("champ") &"></td></tr>"
 Else
      Response.write "<td>"& Rs("champ") &"</td>"
End if
i=i+1
Rs.movenext
Il faut pas ouvrir et fermer la ligne sur le même enregistrement.
je ferrais plus un truc du genre
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
i= 1
nbchamp = 3 ' nombre de colonnes voulu sur la ligne
do while not rs.eof
 if i= 1 then
  response.write("<tr><td>"&rs("champ")&"/td>")
 elseif i = nbchamp then
  response.write("<td>"&rs("champ")&"</td></tr>")
  i = 0
 else
  response.write("<td>"&rs("champ")&"</td>")
 end if
 i = i +1
 
 rs.movenext
loop
__________________
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Phiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 18h47   #6
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

je l'ai écris vite fais le code, je l'ai en plus claire dans une de mes pages de mon ancien site, cela fonctionne nikel.

De plus, j'ai rien contre ton code Phiss sa marche certainement, je n'en doute pas mais j'pense que sa serait plus simple pour le serveur avec modulo que de le surcharger avec toute les conditions que tu lui imposes.

++
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 09h07   #7
Membre expérimenté
 
Avatar de Phiss
 
Homme
Développeur Web
Inscription : mai 2005
Messages : 660
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2005
Messages : 660
Points : 581
Points : 581
Tu peux me montrer ton code stp?

Car j'aimerais voir comment tu fais.

Merci.
__________________
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Phiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 17h04   #8
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Voila le code Phiss, il n'affiche que deux enregistrement par ligne et alterne la présentation c'est à dire, 1 ligne se sera Commentaire+Photo la ligne suivante Photo+Commentaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<%
i=1
Do while not rs.eof
 if i Mod 2 = 0 Then
  Response.write "<tr><td width=""150"" align=""center""><a href=""& Rs("Url") &"" target=""_blank""><img src=""& Rs("Url") &""></a></td><th width=""290"">"& Rs("Commentaire") &"</th></tr>"
 Else
Response.write "<tr><th>"& Rs("Commentaire") &"</th><td align=""center""><a href=""& Rs("Url") &"" target=""_blank""><img src=""& Rs("Url") &""></a></td></tr>"
 End if
i=i+1
Rs.movenext
Loop
%>

Ceci répondra mieux à ta question par contre j'ai testé est cela fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<%
i=1
Do while not rs.eof
 if i mod 3 = 0 then
   response.write Rs("NomMbr") &"<br/>"
 else
   response.write Rs("NomMbr") &" "
 end if
i=i+1
Rs.movenext
Loop
%>
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h12.


 
 
 
 
Partenaires

Hébergement Web