Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Errore ciclo

  1. #1

    Errore ciclo

    Ciao a tutti,
    ho un problema con una paginazione (realizzata già altre volte...), ho fatto una ricerca ma non sono riuscito a risolvere... il problema è che mi ripete il record per il numero di pagine es. ho 15 record faccio la paginazione per 5 record per pagina logicamente dovrebbere venir fuori 3 pagine con 5 record ciascuna ed invece mi vengono fuori 3 pagina con 1° pagina con 15 record, 2 pagina con 10 record, terza pagina con 5 record... il codice è il seguente:

    Codice PHP:
    ' Apro connessione
    ...........

    Apro il recordset
    Set rs 
    Server.CreateObject("ADODB.recordset")
    SQL "SELECT * FROM TABELLA"
    ' Paginazione 
    RecordsPerPagina = 5
    page = Request("page") 
    if page="" then 
        page=1 
    end if
    rs.CursorLocation = 3 ' 
    Cursore Client
    rs
    .Open SQLconn_soft11

    ' Eseguo controllo recordset se è vuoto
    If rs.EOF and rs.BOF Then
        Response.Write("recordset vuoto")
        Else
        ..... codice HTML
        <%
        rs.PageSize = RecordsPerPagina
        rs.AbsolutePage = page 
                        
        For i=1 to RecordsPerPagina 
            Do While NOT rs.eof
        %>
        .... Codice HTML e ASP per creare la tabella dei dati
        <%
            rs.movenext
            Loop
        Next
    End if
    %>
    ..... codice HTML
    Pagine:
    <%
    For pag=1 to rs.PageCount 
        Response.Write " | "
        Response.Write "[url='
    elenco.asp?page=" & pag & "']" & pag & "[/url]"    
    Next
    Response.Write " | "
    %> 
    Dove sta lo sbaglio? Perchè mi dà questo tipo di problema? :master:

    Ciao e Grazie
    Fabio

  2. #2
    codice:
    For i=1 to RecordsPerPagina 
           if not rs.eof then
        %> 
        .... Codice HTML e ASP per creare la tabella dei dati 
        <% 
            rs.movenext 
            end if
        Next
    e poi invece di
    codice:
    rs.CursorLocation = 3 ' Cursore Client 
    rs.Open SQL, conn_soft, 1, 1
    metti

    codice:
    rs.Open SQL, conn_soft, 1, 3

  3. #3
    Ciao,
    ancora niente ora con le modifiche apportate mi dà sempre 3 pagine però ora con un un solo record per pagina ossia il 5° nella prima pagina, il 10° nella seconda e il 15° nella terza. :master:

  4. #4
    ma che strano...vediamo un pò piu di codice

  5. #5
    Allora questa è la pagina comprensiva di codice HTNL

    Codice PHP:
    Set rs Server.CreateObject("ADODB.recordset")
    SQL "SELECT * FROM TABELLA WHERE FLGCONTROLLA = TRUE order by ID desc"

    ' Paginazione 
    RecordsPerPagina = 5
    page = Request("page") 
    if page="" then 
        page=1 
    end if

    rs.Open SQL, conn, 1, 3



                   <% 
                    If rs.EOF and rs.BOF Then
                    Response.Write("<tr><td colspan='
    4' class='caraGra'>" & "Nessun record presente al momento..." & "</td></tr>")
                    Else
                    %>
                    <tr> 
                      <td width="35%" valign="top" class="footer_sx"  ìclass="cara_titolo_centro"> 
                        <div align="left">Marca</div></td>
                      <td width="33%" class="footer_sx"> <div align="left">Modello</div>
                        <div align="center"></div></td>
                      <td width="13%" class="footer_sx"><div align="center">Giorni 
                          scad.</div></td>
                      <td width="10%" class="footer_sx"><div align="center"></div></td>
                      <td width="9%" class="footer_sx"><div align="center"></div></td>
                    </tr>
                    <tr  bgcolor="#666666"> 
                      <td height="1" colspan="5" background="../images/tratteggio_orizzontale.gif">[img]../images/puntino_trasparente.gif[/img]</td>
                    </tr>
                    <% 
                            rs.PageSize = RecordsPerPagina
                            rs.AbsolutePage = page 
                            
                            '
    Response.Write(RecordsPerPagina "
    "
    )
                            
    'Response.Write(page)
                            '
    Response.End()
                        
                    For 
    i=1 to RecordsPerPagina 
                        
    If NOT rs.eof Then %>
                    <
    tr
                      <
    td width="35%" class="font_gra_norm">[img]../images/freccia2.gif[/img
                        <
    input name="idrec" type="hidden" id="idrec" value="<% =rs.fields("ID") %>" /> 
                    
                    <%
                    
    Set rsMarca Server.CreateObject("ADODB.recordset")
                    
    SQLMarca "SELECT * FROM MARCA WHERE IDMARCA=" rs("IDMARCA")
                    
    rsMarca.Open SQLMarcaconn
                    
    %>
                        <
    span class="footer_centro_blu"><%=rsMarca.fields("MARCA")%></span></td>
                      <
    td width="33%" class="footer_centro_blu"> <div align="left"
                          <% If 
    rs.fields("FLGIMG")= TRUE Then %>
                          [
    img]<% = percorso rs.fields([/img]" width="25" height="25" alt="Immagine" /> 
                          <% End if %>
                          <% Response.write Left(rs.fields("
    MODELLO"), 50) %>
                        </div></td>
                      <td width="
    13%"> <div align="center" class="footer_centro_blu"> 
                          <% 

                      If DateDiff("
    d", FormatDateTime(Date()), rs.fields("OFF_DATA_FINE")) < 0 Then 
                      Response.Write("
    Scaduto")
                      Else
                      Response.Write(DateDiff("
    d", FormatDateTime(Date()), rs.fields("OFF_DATA_FINE"))) 
                          If rs.fields("
    FLGSOSPENDI") = TRUE Then
                              Response.Write("
    <span class='footer_sx'Sospesa</span>")
                          End if
                      End if
                      %>
                        </div></td>
                      <td width="
    10%"> <div class="footer_sx"> 
                          <div align="
    center">[url="modifica.asp?id=<%=rs.fields("]">Modifica[/url]</div>
                        </
    div></td>
                      <
    td width="9%"> <div class="footer_sx"
                          <
    div align="center">[url="delete.asp?id=<%=rs.fields("]">Elimina[/url]</div>
                        </div></td>
                    </tr>
                    <tr> 
                      <td height="
    3" colspan="5">[img]../images/puntino_trasparente.gif[/img]</td>
                    </tr>
                    <tr bgcolor="
    #666666"> 
                      
    <td height="1" colspan="5" background="../images/tratteggio_orizzontale.gif">[img]../images/puntino_trasparente.gif[/img]</td>
                    </
    tr>
                    <
    tr
                      <
    td height="3" colspan="5">[img]../images/puntino_trasparente.gif[/img]</td>
                    </
    tr>
                    <%
    rs.movenext
                        End 
    if
                        
    Next
                        End 
    if
                        %>
                  </
    table>
                  <
    class="caraGra"></p>
                   </
    div></td>
            </
    tr>
            <
    tr
              <
    td class="cara_pic_centro">
     
    Pagine:
                                <%
                                For 
    pag=1 to rs.PageCount 
                                    Response
    .Write " | "
                                    
    Response.Write "[url='archivio.asp?page=" pag "']" pag "[/url]"    
                                
    Next
                                Response
    .Write " | "%> 

  6. #6
    prova a mettere:

    codice:
    rsMarca.close: set rsMarca=nothing
    rs.movenext

  7. #7
    Niente non cambia nulla... sempre lo stesso.
    Ho provato la SELECT direttamente in Access e restituisce 15 record (giusto), non so cosa pensare eppure in altre situazioni ha sempre funzionato!!!

    Certo è strano stampa solo ogni 5 record ho c'è un problema di cicli (però apro il FOR apro l'IF faccio il movenext chiudi l'IF chiudo il FOR... :master: )

  8. #8
    non so che dirti mi sembra giusta la cosa...prova a fare in un'altra pagina lo stesso script, senza html, facendoti stampare:
    codice:
    ...
    for i=1 to RecordsPerPagina
    if not rs.eof then
    response.write i & "
    "
    rs.movenext
    end if
    next
    ...
    e vediamo se almeno nell'if c'entra

  9. #9
    Incredibile!
    Lo stesso codice su una pagina nuova non dà problemi!!!! VVoVe: :master:
    Non so cosa pensare provo a rifare per intero la pagina vi faccio sapere.

    Ciao e grazie

    Fabio

  10. #10
    buon debug, alle volte l'errore c'è ma non si vede...anzi quasi sempre è così

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.