Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Problema con paginazione ASP & MySQL

    Ciao a tutti.

    Stavo provando questa semplice paginazione ASP con DB MySQL:

    codice:
    pageSize = 25
       if(len(Request.QueryString("pagina"))=0)then
          currentPage = 1
       else
          currentPage = CInt(Request.QueryString("pagina"))
       end if
       
       If Not IsNumeric (currentPage) Then currentpage = 1
       If currentPage < 1 Then currentPage = 1
    
       start = ((currentPage - 1) * pageSize)
       If start < 0 Then start = 0
    
       SQL = "select * from tab "
       SQL = SQL & " LIMIT " & start & ", " & pageSize "
     
       Set RS = Server.CreateObject("ADODB.Recordset")
       RS.Open SQL, cn
       
       if Not RS.eof then
          while not RS.eof
    
             response.write ...........   
    
          RS.movenext()
       wend   
    
       end if
    
       RS.Close()
       Set RS = Nothing
    
    
    
       response.write ">Avanti
    Ma non riesco a disabilitare il link «Indietro» ed il link «Avanti» quando le pagine sono finite.
    I records vengono correttamente impaginati, ma all'ultima pagina quando clicco sul link «Avanti» mi viene proposta una pagina bianca.

    Cosa sbaglio?
    Grazie
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi controllare in che pagina ti trovi...
    Se è la prima (currentPage=1) non metti indietro... se è l'ultima (numero totale dei record diviso pagesize + 1) non metti avanti.

    Roby

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    Devi controllare in che pagina ti trovi...
    Se è la prima (currentPage=1) non metti indietro... se è l'ultima (numero totale dei record diviso pagesize + 1) non metti avanti.

    Roby
    Scusa non ho capito...
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    if currentPage > 1 then
    "visualizzi il tasto indietro"
    else
    "non visualizzi il tasto indietro"
    end if

    idem per l'ultima pagina

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie, sono riuscito a disabilitare il tasto PREV ma non riesco con il tasto NEXT...

    codice:
    <% if currentPage > 1 then %>
    PREV 
    <% else %>
    PREV 
    <% end if %>
    | 
    <% if currentPage > 1 then %>
    NEXT
    <% else %>
    NEXT
    <% end if %>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Te l'ho già detto... a te manca un dato: il numero totale dei record.

    Roby

  7. #7
    se non sai qual'è l'ultima pagina non saprai mai dove far "sparire" il tasto next ^_^

    per sapere qual'è l'ultima pagina

    io farei

    codice:
    ultima_pag=INT(numero_totale_record / record_visualizzati_per_ogni_pagina)
    IF numero_totale_record MOD record_visualizzati_per_ogni_pagina > 0 THEN
     ultima_pag=ultima_pag+1
    END IF
    @Roby_72
    perchè +1 a priori? :master:

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non a priori... il tuo ragionamento è corretto.

    Roby

  9. #9
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    OK, ho capito ma:

    1) per contare i records totali devo eseguire una seconda query? oppure?
    2) nel caso di query complesse ( query con subquery) la paginazione è sempre così lineare? Il metodo è sempre lo stesso adottato per questa query semplificata?

    Grazie
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare una COUNT(*)

    Roby

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.