Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Paginazione ASP & MySQL

    Ciao.

    Sto provando ad usare la paginazione con ASP e MYSQL:

    codice:
    <%
    
    Function excess(argValue)
    	if not (int(argValue) = argValue) then argValue = int(argValue)+1		
    	excess = argValue
    end Function
    
    dim currentPage, pageSize, recordCount, pageCount
    
    ' imposta il numero di record da visualizzare in ogni pagina
    pageSize = 12
    
    ' "leggi" la pagina corrente dalla querystring
    if(len(Request.QueryString("page"))=0)then
      currentPage = 1
    else
      currentPage = CInt(Request.QueryString("page"))
    end if
    
    
    dim cn, rs, sql
    
    ' apri la connessione al database
    set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "Driver={MySQL ODBC 3.51 Driver};Server=127.0.0.1;Database=miodatabase;user=root;password=miapass;"
    
    ' conteggia il numero di record totali della query e il numero di pagine (per la visualizzazione dei link delle altre pagine)
    sql = "SELECT COUNT(*) AS CNT FROM <tabella>"
    set rs = cn.execute(sql)
    recordCount = rs("CNT")
    ' ottieni il numero delle pagine totali
    pageCount = excess(cInt(recordCount) / (cInt(pageSize)))
    rs.Close()
    
    ' seleziona i record da visualizzare nella pagina corrente
    sql = "SELECT * FROM <tabella> " &_
          " LIMIT " & (currentPage - 1) * pageSize & ", " & pageSize
    set rs = cn.execute(sql)
          
    ' visualizza il contenuto del recordset
    do while not rs.eof
      Response.Write(rs("NOME_CAMPO") & "
    ")
      rs.MoveNext()
    loop
    
    rs.Close()
    set rs = nothing
    
    ' chiudi la connessione al database
    cn.Close()
    set cn = nothing
    
    
    ' visualizza i link alle pagine
    dim i
    for i=1 to pageCount
      Response.Write("" & i & " ")
    next
    
    %>
    Funziona tutto tranne che invece di vedere 8 pagine ne vedo 10 ( 9 e 10 vuote...)

    Numero di records = 116
    PageSize = 12
    PageCount = 10


    Dove sbaglio???

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La pagecount è corretta?

    Roby

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    La pagecount è corretta?

    Roby
    Credo di no perchè con pagecount = 10 ma in realtà le pagine con records sono 8 ...

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E allora è sbagliato.

    Roby

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    E allora è sbagliato.

    Roby
    Si ok; ma dov'è il problema?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Numero totale dei record?
    PageSize?

    Quanto valgono questi due valori?

    Roby

  7. #7
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Numero totale dei record?
    PageSize?

    Quanto valgono questi due valori?

    Roby

    Numero di records = 116
    PageSize = 12

    PageCount = 116/12 = 9,6

    la funzione excess arrotonda a 10.... non deve funzionare così?

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Allora è la LIMIT ad essere sbagliata.
    Stampati le SELECT di ogni pagina...

    Roby

  9. #9
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Allora è la LIMIT ad essere sbagliata.
    Stampati le SELECT di ogni pagina...

    Roby
    SELECT SUM(QUANT) AS strQUANT FROM TABELLA GROUP BY IDXP ORDER BY ID ASC

    'pagine da 1 a 8 con records
    LIMIT 0, 12
    LIMIT 12, 12
    LIMIT 24, 12
    LIMIT 36, 12
    LIMIT 48, 12
    LIMIT 60, 12
    LIMIT 72, 12
    LIMIT 84, 12

    'qui nessun records ( pagine 9 e 10 )
    LIMIT 96, 12
    LIMIT 108, 12

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    ??? La LIMIT 0,12 ti riporta 8 record????

    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 © 2026 vBulletin Solutions, Inc. All rights reserved.