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

Discussione: ciclo if

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488

    ciclo if

    Ciao a tutti, io ho il seguente codice che mi estrae tutti gli appuntamenti presi da un certo cliente in base ad un ciclo if; vorrei inserire nello stesso ciclo che se non ci sono appuntamenti mi dia comunque l'id, il cognome e nome del cliente e la frase "ancora non risulta preso alcun appuntamento", etc. etc. ma non riesco a capire come.
    Il codice è il seguente :

    <%id = trim(request.querystring("id"))
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\inetpub\webs\....mdb")
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute("SELECT Clienti.IDCliente, Clienti.[Cognome e Nome] AS Cliente, [Tipologie Trattamenti].[Descrizione Trattamento], Trattamenti.Data, Trattamenti.OraInizio, Trattamenti.Importo, Dipendenti.[Cognome e Nome]As Dipendente FROM Dipendenti RIGHT JOIN ([Tipologie Trattamenti] RIGHT JOIN (Clienti RIGHT JOIN Trattamenti ON Clienti.IDCliente = Trattamenti.IDCliente) ON [Tipologie Trattamenti].[IDTipo Trattamento] = Trattamenti.[IDTipo Trattamento]) ON Dipendenti.IDImpiegato = Trattamenti.IDImpiegato WHERE Clienti.IDCliente="& id)
    precedente=""
    while NOT objRs.EOF
    if precedente<>objRs("IDCliente") then
    %>
    <table border="1" cellpadding="6" cellspacing="6">
    <tr>
    <td>ID</td>
    <td>Cognome e Nome</td>
    </tr>
    <tr>
    <td><%=objRs("IDCliente")%></td>
    <td><%=objRs("Cliente")%></td>
    </tr>
    <tr>
    <td align="left"></td>
    <td align="left">Data</td>
    <td align="left">Ora</td>
    <td align="left">Trattamento</td>
    <td align="left">Operatore</td>
    <td align="left">Importo</td>
    </tr>

    <%
    precedente=objRs("IDCliente")
    end if
    %>
    <tr>
    <td></td>
    <td align="left"><%=objRs("Data")%></td>
    <td align="left"><%=objRs("OraInizio")%></td>
    <td align="left"><%=objRs("Descrizione Trattamento")%></td>
    <td align="left"><%=objRs("Dipendente")%></td>
    <td align="left"><%=objRs("Importo")%></td>
    </tr>
    <%
    objRs.Movenext
    wend
    objRs.Close
    Set objRs = Nothing
    objConn.Close
    Set objConn = Nothing
    %>
    </table>

  2. #2
    1. ciclo if?
    2. metti il codice tra i tag CODE, aumenta la leggibilità
    3. prima di end if metti

    codice:
    ...
    else
       Response.write "ancora non risulta preso alcun appuntamento"
    ...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Scusa ma ci deve essere qualcosa che non va, perchè nel caso in cui lo inserisca così :

    codice:
    <%
    else
    precedente=objRs("IDCliente")
    Response.write "ancora non risulta preso alcun appuntamento"
    end if
    %>
    non solo non compare quando non ci sono appuntamenti ma compare ripetutamente quando invece ce ne sono!

  4. #4
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    posta il codice dopo le modifiche di optime
    (ricorda il CODE )
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    :master: ok :

    codice:
    <%id = trim(request.querystring("id"))
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\inetpub\webs\....mdb")
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute("SELECT Clienti.IDCliente, Clienti.[Cognome e Nome] AS Cliente, [Tipologie Trattamenti].[Descrizione Trattamento], Trattamenti.Data, Trattamenti.OraInizio, Trattamenti.Importo, Dipendenti.[Cognome e Nome]As Dipendente FROM Dipendenti RIGHT JOIN ([Tipologie Trattamenti] RIGHT JOIN (Clienti RIGHT JOIN Trattamenti ON Clienti.IDCliente = Trattamenti.IDCliente) ON [Tipologie Trattamenti].[IDTipo Trattamento] = Trattamenti.[IDTipo Trattamento]) ON Dipendenti.IDImpiegato = Trattamenti.IDImpiegato WHERE Clienti.IDCliente="& id)
    precedente=""
    while NOT objRs.EOF
    if precedente<>objRs("IDCliente") then
    %>
    <table border="1" cellpadding="6" cellspacing="6">
    <tr>
    <td>ID</td>
    <td>Cognome e Nome</td>
    </tr>
    <tr>
    <td><%=objRs("IDCliente")%></td>
    <td><%=objRs("Cliente")%></td>
    </tr>
    <tr>
    <td align="left"></td>
    <td align="left">Data</td>
    <td align="left">Ora</td>
    <td align="left">Trattamento</td>
    <td align="left">Operatore</td>
    <td align="left">Importo</td>
    </tr>
    
    <%
    else
    precedente=objRs("IDCliente")
    Response.write "ancora non risulta preso alcun appuntamento"
    end if
    %>
    <tr>
    <td></td>
    <td align="left"><%=objRs("Data")%></td>
    <td align="left"><%=objRs("OraInizio")%></td>
    <td align="left"><%=objRs("Descrizione Trattamento")%></td>
    <td align="left"><%=objRs("Dipendente")%></td>
    <td align="left"><%=objRs("Importo")%></td>
    </tr>
    <%
    objRs.Movenext
    wend
    objRs.Close
    Set objRs = Nothing
    objConn.Close
    Set objConn = Nothing
    %>
    </table>

  6. #6
    1) la definizione "ciclo if" è a dir poco esilarante
    2) ovviamente non ho capito la richiesta, però provo a dare una risposta:

    codice:
    precedente=""
    cnt = 0
    while NOT objRs.EOF
    if precedente<>objRs("IDCliente") then
    
    if cnt >0 then response.write "</table>" ' chiudo la tabella eventualmente aperta prima
    
    %>
    <table border="1" cellpadding="6" cellspacing="6">
    <tr>
    <td>ID</td>
    <td>Cognome e Nome</td>
    </tr>
    <tr>
    <td><%=objRs("IDCliente")%></td>
    <td><%=objRs("Cliente")%></td>
    </tr>
    <tr>
    <td align="left"></td>
    <td align="left">Data</td>
    <td align="left">Ora</td>
    <td align="left">Trattamento</td>
    <td align="left">Operatore</td>
    <td align="left">Importo</td>
    </tr>
    
    <%
    end if
    precedente=objRs("IDCliente")
    cnt= cnt+1
    %>
    <tr>
    <td></td>
    <td align="left"><%=objRs("Data")%></td>
    <td align="left"><%=objRs("OraInizio")%></td>
    <td align="left"><%=objRs("Descrizione Trattamento")%></td>
    <td align="left"><%=objRs("Dipendente")%></td>
    <td align="left"><%=objRs("Importo")%></td>
    </tr>
    <%
    objRs.Movenext
    wend
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Allora, cerco di spiegarmi mieglio :
    il codice indicato prima, evidentemente già a me poco chiaro, mi permette di estrarre tutti gli appuntamenti presi da un certo cliente in base ad un ciclo if creato per evitare il ripetersi del suo id e del suo cognome e nome in ogni riga di ciascun appuntamento; a questo punto vorrei solo inserire nello stesso codice che se non ci sono appuntamenti mi dia comunque l'id ed il cognome e nome del cliente ma anche la frase "ancora non risulta preso alcun appuntamento" e qualunque altra cosa mi serva.

    P.s. : in tutte le guide asp quando si parla di "if" si parla di ciclo, perchè continuate a dire che non lo è?

  8. #8
    p.s.

    cosa indica un ciclo? una cosa che gira e si ripete. for...next è un ciclo, do...loop è un ciclo.

    if...end if inizia da if e quando arriva a end if esce, mica torna a if: dov'è allora il ciclo?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Pardon, ho riguardato bene ed avete proprio ragione, semmai avrei dovuto dire " condizione if ";
    precisazione terminologica a parte come posso fare ad avere il risultato che desidero?

  10. #10
    codice:
    ....
    set objRs = objConn.Execute("SELECT Clienti.IDCliente, Clienti.[Cognome e Nome] AS Cliente, [Tipologie Trattamenti].[Descrizione Trattamento], Trattamenti.Data, Trattamenti.OraInizio, Trattamenti.Importo, Dipendenti.[Cognome e Nome]As Dipendente FROM Dipendenti RIGHT JOIN ([Tipologie Trattamenti] RIGHT JOIN (Clienti RIGHT JOIN Trattamenti ON Clienti.IDCliente = Trattamenti.IDCliente) ON [Tipologie Trattamenti].[IDTipo Trattamento] = Trattamenti.[IDTipo Trattamento]) ON Dipendenti.IDImpiegato = Trattamenti.IDImpiegato WHERE Clienti.IDCliente="& id)
    precedente=""
    ' aggiungi da qui
    IF objRs.EOF then
       response.write 'nun ce sta gnente'
    ELSE
    ' a qui
       while NOT objRs.EOF
       ....
       wend
    ' aggiungi da qui
    END IF
    ' a qui
    objRs.Close
    ...

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.