Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ciclo while con annidato un for...non va

    Salve,

    nello script che sotto vi proporrò c'è un ciclo while della variabile i che dovrebbe assumere i valori da 0 a 2. ad ogni passaggio della i si attiva il ciclo for della variabile j che assumerà i valori da 0 a 2 e mi prenderà i valori di un request.form.

    Questo in teoria

    nella pratica sia che usi il ciclo while o il for...next, mi fa sempre e solo un passaggio della variabile i, ovvero la i=0. i=1 e i=2 non me le da. Qualcuno che ci prova a capire l'arcano? Di seguito il codice e in fondo la spiegazione di una funzione che uso nel codice

    grazie a tutti

    codice:
    <%
    dim arrTxtN,arrTxtV,arrNumN,arrNumV,arrDataN,arrDataV
    dim d1,d2,g1,g2,m1,m2
    dim data,ora,annoVigore
    
    'riempio l'array delle date
    
    i=0
    while not i=3 'scorro le righe/periodi
    
    
    
    for j=0 to 2 'scorro le colonne
    
    d1="" : d2="" : data=""
    
    g1=request.Form("g1" & i & (j+1))
    m1=request.Form("m1" & i & (j+1))
    g2=request.Form("g2" & i & (j+1))
    m2=request.Form("m2" & i & (j+1))
    
    if (g1 <> "---") and ( m1 <> "---") then
    'd1=creaData(int(g1),int(m1))
    d1=g1 & "/" & m1
    end if
    
    if g2 <> "---" and m2 <> "---" then
    'd2=creaData(int(g2),int(m2))
    d2=g2 & "/" & m2
    end if
    
    
    arrTxtV=arrTxtV & d1 & "|" & d2
    if j<2 then arrTxtV=arrTxtV & "|"
    
    
    next
    
    data=date() : ora=time() : annoVigore=int(request.Form("anno"))
    
    
    arrNumN=array("idestate","annoVigore","prezzo","periodo")
    arrNumV=id & "|" & annoVigore & "|" & replace(request.Form("prezzo" & i),",",".") & "|" & (i+1)
    arrNumV=split(arrNumV,"|")
    arrDataN=array("data","ora")
    arrDataV=array(data,ora)
    arrTxtN=array("da1","a1","da2","a2","da3","a3")
    arrTxtV=split(arrTxtV,"|")
    %>
    <table><tr><td>
    <%= CreaSql("PriceParking",arrTxtN,arrNumN,arrDataN,arrTxtV,arrNumV,arrDataV,0,"") %>
    </td></tr></table>
    <%
    erase arrNumN : erase arrNumV : erase arrDataN : erase arrDataV : erase arrTxtN : erase arrTxtV
    
     i=i+1
    wend
    
    
    %>
    la funzione CreaSql stampa la seguente riga sql utilizzando i 6 array passati alla funzione:

    codice:
    ad esempio:
    INSERT INTO [PriceParking]([da1],[a1],[da2],[a2],[da3],[a3],[idestate],[annoVigore],[prezzo],[periodo],[data],[ora]) VALUES('3/6','6/8','5/6','4/6','/','/',2,2005,0.00,1,#23/09/2005#,#2.15.32#)
    ancora grazie

  2. #2
    Forse perché nella CreaSql
    usi la variabile i senza averla definita dentro la funzione e allora la considera globale e non locale

    In tal caso scrivi "Dim i" dentro la funzione

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.