IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Pagination records base de données


Sujet :

ASP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 352
    Points : 70
    Points
    70
    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

  2. #2
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Salut,

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 352
    Points : 70
    Points
    70
    Par défaut
    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

  4. #4
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Ah ok excuse, dans ce cas tu fais un modulo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  5. #5
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    a mon avis cela va pas marcher super bien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    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.

    ++
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  7. #7
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    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

  8. #8
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    %>
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

Discussions similaires

  1. Image / Record / Base de données / DBGrid
    Par BuzzLeclaire dans le forum Bases de données
    Réponses: 9
    Dernier message: 07/11/2012, 22h49
  2. [RSS] pagination et acces a la base de données
    Par kagura dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2007, 16h38
  3. Pagination table base données en colonne
    Par delavega dans le forum ASP
    Réponses: 9
    Dernier message: 05/03/2007, 21h28
  4. Pagination table base données
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 06/02/2007, 00h13
  5. Pagination base de données
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 02/03/2006, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo