• User Attivo

    suddividere risultati in più pagine da x risultati ciascuna

    Come faccio a suddividere in più pagine i risultati dela query fatta ad un database?

    Se ho per esempio chiesto quanti sono gli utenti di un servizio e sono 300 ma io ne voglio visualizzare 50 per pagina come posso fare? Ma poi quando sarann 400 dovrà essere il sistema automaticamente a creare le nuove pagine.
    Boh :mmm:


  • Super User

  • User Attivo

    La conoscevo ma non c'è un modo più facile?


  • Moderatore

    Questa è la sintassi che uso io con asp, puoi provare ad adattarla al php, non è difficile:

    IL nome della pagina facciamo finta che sia:

                                    il_mio_cane.php
    

    Dim QuerySQl
    Dim Recordset
    Dim pagina
    Dim risultati_per_pagina
    dim cont

    risultati_per_pagina=50
    cont=risultati_per_pagina
    pagina = TRIM(Request.QueryString("pag")) 'paginazione

    if pag="" Then
    pag = 1
    Else
    pag = CInt(pag)
    End If

    set Recordset= Server.CreateObject("ADODB.Recordset")

    QuerySQl="SELECT CHE TE PARE FROM CHE TE PARE"

    Recordset.open QuerySQl, Connessione_al_db

    if Recordset.eof then
    Response.Write "<p align=""center"">Db vuoto</p>"
    Recordset.close
    set Recordset=nothing
    Connessione.close
    set Connessione=nothing
    else

    dim movimento '(serve per creare le pagine successive)

    movimento=risultati_per_pagina*(pag - 1)
    Recordset.move movimento

    while not (Recordset.eof or cont=0)
    QUI SCRIVI TUTTO IL CODICE CHE TI SERVE PER METTERE I DATI DEL DB NELLA TUA PAGINA PHP
    cont = cont - 1
    Recorset.Movenext
    wend
    If ( pag > 1) Then 'se la pagina è >1 crea la freccia per tornare indietro

    <a class="Sx" href="il_mio_cane.php?pag=<%=pag-1%>">

    </a>

    End if

    dim c, tot, lastpage, objRStot

    					          Set objRStot = Server.CreateObject("ADODB.Recordset")
    					         StringaSQL = "SELECT COUNT(*) FROM LA TABELLA CHE TI INTERESSA"
    					     objRStot.Open StringaSQL, Connessione
    					      tot=objRStot(0)
    

    if tot mod(numero)=0 then
    lastpage=int(tot/risultati_per_pagina)
    else

    lastpage=Int(tot/numero)+1

    end if

    for c=1 to lastpage

    [url="il_mio_cane.php?pag=<%=c%>"]<%=c%>
    next

    If not Recordset.eof Then

    <a class="Sx" href="il_mio_cane.php?pag=<%=pag+1%>">

    </a>
    End if
    Recordset.close
    set Recordset=nothing
    objRStot.close
    Set objRStot=nothing
    Connessione.close
    set Connessione=nothing
    End if

    Probabilemente hoi scritto male qualche cosa, perchè vado di corsa, se ci sono errori ditemelo.
    Ciao


  • User Attivo

    Grazie.
    Comunque ho deciso di modificare quello di html, usando la paginazione 2 😉
    GRAZIE.