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

Discussione: Ciclo Do While

  1. #1

    Ciclo Do While

    Ciao ragazzi,
    mi sono perso nei cicli...
    Nella tabella ho diversi campi tra cui img1, img2...img5, all'interno di questi record ci sono i path di foto.
    Vorrei estrapolare solo i record che hanno dati (path) all'interno per ciascun recordset, per capirci questa cosa qui sotto funziona ma vorrei farla in modo più funzionale e corretta:

    <%
    DO WHILE NOT Rs.EOF
    X = 1
    If rs("img"&X) <> "" then
    %>
    [img]<%= rs([/img]"/>
    <%
    End If
    X = X + 1
    If rs("img"&X) <> "" then
    %>
    [img]<%= rs([/img]"/>
    <%
    End If
    X = X + 1
    If rs("img"&X) <> "" then
    %>
    [img]<%= rs([/img]"/>
    <%
    End If
    X = X + 1
    If rs("img"&X) <> "" then
    %>
    [img]<%= rs([/img]"/>
    <%
    End If
    X = X + 1
    If rs("img"&X) <> "" then
    %>
    [img]<%= rs([/img]"/>
    <%
    End If
    rs.movenext
    Loop
    %>

    Ho provato anche ad aggiungere For Each Campo IN rs.Field ma crea un ciclo ogni record esistente in quella tabella, mentre io ho bisogno di visualizzare solo i contenuti dei record "img1" "img2"..."img5"
    spero di essere sto chiaro

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma la query come?
    Hai provato una cosa tipo?
    codice:
    SELECT * FROM TuaTabella WHERE img1 <> '' or img2 <> '' etc..."
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ciao, la query è questa:

    ...
    Set rs = Server.CreateObject("ADODB.Recordset")
    sql = "SELECT * FROM items WHERE attivo = 1 AND CatID = "& CatID &" ORDER BY posizione ASC"
    set rs = cn.Execute(sql)
    If rs.EOF Then
    response.write ("
    ")
    Else
    DO WHILE NOT Rs.EOF
    .....

    grazie per l'aiuto

  4. #4
    img1 img2 .... sono record o campi?

  5. #5
    sono dei campi..

  6. #6
    puoi al massimo fare un ciclo for...next sui 5 campi, ma non è che ci sia molto da migliorare...

  7. #7
    infatti volevo farlo meglio aggiungendo For..Next, per farlo più "elastico" ad esempio se un domani diventano 20 campi (1mg1...img20) dovrò andare ad inserire tante nuove righe di codice, mentre con For Next no..
    Avevo provato così:

    DO WHILE NOT Rs.EOF
    For Each Campo IN rs.Field
    .....
    Next
    rs.movenext
    Loop

    solo che non so come fare mettere img1-5 al posto di "Campo".. spero di essermi spiegato..

  8. #8
    la soluzione ce l'hai sotto gli occhi...


    codice:
    DO WHILE NOT Rs.EOF 
       For x = 1 to 5
          If rs("img" & X) <> "" then
          %>
             [img]<%= rs([/img]"/>
          <%
          End If
       Next
       rs.movenext
    Loop
    %>
    p.s. impara ad usare il tasto [CODE]

  9. #9
    Ciao Optime, grazie perfetto!
    La soluzione era proprio sotto i miei occhi..
    Una cosa, è che appunto si struttura perfettamente, ma il "src" rimane vuoto, non viene stampato il nome dell'immagine salvata nel db...
    è un problema che avevo avuto anche con la mia soluzione.
    Avevo risolto mettendo prima del DO WHILE:
    img1 = rs("img1")
    img2 = rs("img2")
    ...
    poi richiamavo img1, img2... mentre se mettevo direttamente src="<%= rs("img1") %>" rimaneva vuoto..
    da cosa può dipendere?
    Grazie ancora

  10. #10
    dal tipo di campo. sono campi memo?

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.