Visualizzazione dei risultati da 1 a 6 su 6

Discussione: tre cicli annidati

  1. #1

    tre cicli annidati

    Ho un problema con tre cicli annidati.

    Il codice è un po' lungo da inserire, cercherò di fare un sunto, ma se non dovesse bastere cercherò di inserire il codice:
    codice:
    <% 
        connessione1 = ""SELECT * FROM tabella_rs1"
        Do while not Rs1.EOF 
        connessione2 = "SELECT * FROM tabella_rs2 WHERE RS1_ID = "&Rs1("ID_RS1")
    %>
       <table>
       <tr>
       <td>
    <%   Do while not Rs2.EOF
               Rs2("record")
           Rs2.MoveNext 
       Loop
    %>
       </td>
       </tr>
       <tr>
       <td> 
    <%   Do while not Rs2.EOF %>
           <input type="text" value="<%=Rs2("record")%>">
    <%   Rs2.MoveNext
           Loop 
    %>
       </td>
       </tr>
      </table>   
    <% Rs1.MoveNext
         Loop
    %>
    .... spero che così riusciate lo stesso a capire...cmq il problema è che viene tutto stampato a video perfettamente a parte solo nel secondo (quello in rosso)

  2. #2
    Io ho capito che a mio avviso PRIMA della parte da te scritta in rosso è meglio che riporti il puntatore di Rs2 all'inizio ...
    codice:
    Rs2.MoveFirst
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    stai scherzando vero?
    nel primo ciclo porti il recordset fino in fondo, è chiaro che il secondo non verrà mai eseguito...
    prova metti un MoveFirst iin mezzo ai due...

    codice:
    <%   Do while not Rs2.EOF
               Rs2("record")
           Rs2.MoveNext 
       Loop
    %>
       </td>
       </tr>
       <tr>
       <td> 
    <% 
       Rs2.MoveFirst  
       Do while not Rs2.EOF %>
           <input type="text" value="<%=Rs2("record")%>">
    <%   Rs2.MoveNext
           Loop 
    %>
    too late

  4. #4
    la mia ignoranza non pensava ci fosse differenza mattere il movefirst dopo il loop o prima del ciclo do while
    Cmq grazie mille ora funziona perfettamente...e pensare che avevo provato tutte le combinazione ... va beh...grazie ancora

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    te immagina che ogni movenext si sposta di un record. quando arriva in fondo la proprietà EOF sarà true. Ecco che il secondo ciclo (essendoci la condizione fintanto che è not true) non si avvierà nemmeno.
    Devi quindi portarlo al primo record.

  6. #6
    Un'altro errore, ma sempre per il problema dei cicli:
    codice:
    <% 
        connessione1 = ""SELECT * FROM tabella_rs1"
        Do while not Rs1.EOF 
        connessione2 = "SELECT * FROM tabella_rs2 WHERE RS1_ID = "&Rs1("ID_RS1")
    %>
       <table>
       <tr>
       <td>
    <%   Do while not Rs2.EOF
               Rs2("record")
           Rs2.MoveNext 
       Loop
    %>
       </td>
       </tr>
       <tr>
       <td> 
    <%  Rs2.Movefirst  
          Do while not Rs2.EOF %>
           <input type="text" value="<%=Rs2("record")%>">
    <%   Rs2.MoveNext
           Loop 
    %>
       </td>
       </tr>
      </table>   
    <% Rs1.MoveNext
         Loop
    %>
    Errore (riga dell'errore in rosso):
    Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.

    Da quello che ho capito, l'errore nasce da quanto nella query il valore del campo non è uguale al record ( Rs1("ID_RS1") )...ma non so proprio come risolvere

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.