Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312

    aiuto su clicli di while

    ciao a tutti,

    aiutatemi pleaseeeee!!!!!!

    ho un codice un po contorto e complesso,


    sql="SELECT id_colore FROM associazione_colori_lenti where id_lente = "&request("id_lente")

    rs.open sql,conn,3,3

    'numero di colori esistenti
    num_colori = rs.recordcount

    rs.close
    sql= "select distinct colore from colori_lenti"
    rs.open sql,conn,3,3

    i=0

    do while not rs.eof

    sql1="SELECT descrizione FROM colori_lenti where colore = '"&rs("colore")&"'"
    rs1.open sql1,conn,3,3

    descrizione = rs1("descrizione")

    rs1.close
    sql1="SELECT * FROM colori_lenti where colore = '"&rs("colore")&"' and descrizione = '"&descrizione&"'"
    rs1.open sql1,conn,3,3

    id = rs1("id")
    colore = rs1("colore")

    rs1.close
    sql1="SELECT id_colore FROM associazione_colori_lenti where id_lente = "&request("id_lente")&" and id_colore = "&id
    rs1.open sql1,conn,3,3

    if not rs1.EOF then

    if CInt(id) = rs1("id_colore") then%>

    <tr>
    <td width="8%" style="border-style: none; border-width: medium" align="center" height="27">
    <input type="checkbox" name="colore<%=i%>" value="<%=id%>" <%if cint(id) = request("colore_lente") then response.write "checked" end if%>>
    </td>
    <td width="45%" style="border-style: none; border-width: medium" height="27">
    <p align="center"><font face="Verdana" size="1" color="#0061C1">
    <%=descrizione%></font>
    </td>
    <td width="11%" style="border-style: none; border-width: medium" height="27">
    <p align="center"><font face="Verdana" size="1" color="#0061C1">
    <%

    rs1.close
    sql1="SELECT assorbimento,id FROM colori_lenti where colore = '"&colore&"'"
    rs1.open sql1,conn,3,3


    %><select name="assorbimento<%=id%>"><%

    do while not rs1.eof
    if Cint(id) = rs1("id") then%>
    <option value="<%=rs1("assorbimento")%>"><%=rs1("assorbime nto")%></option><%
    else%>
    <option value=""></option><%
    end if
    rs1.movenext
    Loop
    %></select>
    </font>
    </td>
    </tr>

    <%
    end if
    end if
    i = i+1

    rs1.close
    rs.movenext
    Loop
    %>

    ************************************************** **************
    il problema è che nella parte finale quando cerco di far eseguire questo codice,il quale dovrebbe riempire la "select" con i risultati della query, ho un unico elemento poichè il ciclo non cicla(ciòè prende il primo elemento, lo inserisce nella select ma poi è come se non facesse il Loop)!!!
    sapete dirmi se faccio qualche cagata nel codice??
    Le query sono giuste , secondo me il problema è che i 2 while sono innidati e per questo uno dei 2 non funziona!!!!!!

    rs1.close
    sql1="SELECT assorbimento,id FROM colori_lenti where colore = '"&colore&"'"
    rs1.open sql1,conn,3,3


    %><select name="assorbimento<%=id%>"><%

    do while not rs1.eof
    if Cint(id) = rs1("id") then%>
    <option value="<%=rs1("assorbimento")%>"><%=rs1("assorbime nto")%></option><%
    else%>
    <option value=""></option><%
    end if
    rs1.movenext
    Loop
    %></select>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Sicuro che la query restituisca più di un record?

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    si si son sicuro, ovvero questa query:

    sql1="SELECT assorbimento,id FROM colori_lenti where colore = '"&colore&"'"


    restituisce sicuramente più di un record, poi sono io che vado a indicargli quale deve andarmi a riempire la "select" con un IF:

    if Cint(id) = rs1("id") then%>
    <option value="<%=rs1("assorbimento")%>"><%=rs1("assorbime nto")%></option><%
    else%>
    <option value=""></option><%
    end if

    Becca il prim valore, e basta.....può essere che non cicla il do while??????

    p.s. l'else l'ho messo solo per una mia curiosità!!!

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ovvio.
    rs1("id") è un contatore immagino.
    Se fai l'uguaglianza con CInt(id) sarà verificata solo una volta... se ti va bene.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    quindi come potrei risolvere???????????

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    il fatto è che rs1("id") dovrebbe ciclare in questo modo...o no????
    invece essendo a sua volta dentro un do while non fa quello che dovrebbe fare!!!!!!

    'primo do while
    do while not rs.eof


    sql1="SELECT assorbimento,id FROM colori_lenti where colore = '"&colore&"'"

    %><select name="assorbimento<%=id%>"><%

    do while not rs1.eof
    if Cint(id) = rs1("id") then%>

    <option value="<%=rs1("assorbimento")%>"><%=rs1("assorbime nto")%></option><%
    else%>
    <option value=""></option><%
    end if
    rs1.movenext
    Loop
    %></select>


    'fine primo do while
    rs.movenext
    Loop

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    rs1("id") infatti cicla ma CInt(id) vale sempre la stessa cosa. Quindi, al massimo, entra in quella if una sola volta.

    Roby

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    scusa ma non dovrebbe valere la stessa cosa visto che il ciclo lo inizio cosi':

    do while not rs.eof

    descrizione = rs("descrizione")
    sql1="SELECT * FROM colori_lenti where descrizione = '"&descrizione&"'"
    rs1.open sql1,conn,3,3

    id = rs1("id")
    colore = rs1("colore")

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si ma è in un altro ciclo. Una volta entrato nell'ultimi "id" vale l'ultimo valore che aveva nel primo ciclo.

    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    312
    ho provato in questo modo, ma non cambia nulla, sempre un valore solo nella "select":

    rs1.close
    sql1="SELECT assorbimento,id FROM colori_lenti where colore = '"&colore&"'"
    rs1.open sql1,conn,3,3
    %><select name="assorbimento<%=id%>"><%

    do while not rs1.eof

    sql2="SELECT * FROM colori_lenti where colore = '"&rs("colore")&"' and descrizione = '"&descrizione&"'"
    rs2.open sql2,conn,3,3

    if rs2("id") = rs1("id") then
    %>
    <option value="<%=rs1("assorbimento")%>"><%=rs1("assorbime nto")%></option><%
    end if

    rs2.close
    rs1.movenext
    Loop
    %></select>

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.