Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Condizioni ElseIf

  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Condizioni ElseIf

    ... oggi è impossibile...

    Ho questo codice:
    codice:
    campo1 = request.querystring("campo1")
    campo2 = request.querystring("campo2")
    
    if campo1 = 0 and campo2 = "0" then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&id&" order by id_campo1 "
    elseif campo1 <> 0 then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&campo1&" ORDER BY campo1 asc"
    elseif campo2 <> "0" then
    SQL = "SELECT * FROM programma_campo1 where chiave = '"&campo2&"' ORDER BY campo1 asc"
    end if
    
    set rs = server.createObject("ADODB.Recordset")
    rs.open SQL, cn, 1, 3
    
    if rs.eof then
    
    response.write "K.O."
    
    else
    Se lo scrivo così pur avendo dei records nella tabella programma_campo1 mi risponde con "K.O.".

    Mentre se lo scrivo così:
    codice:
    if campo1 = 0 and campo2 = 0 then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&id&" order by id_campo1 "
    elseif campo1 <> 0 then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&campo1&" ORDER BY campo1 asc"
    elseif campo2 <> "0" then
    SQL = "SELECT * FROM programma_campo1 where chiave = '"&campo2&"' ORDER BY campo1 asc"
    end if
    la query di estrazione funziona bene...

    Se lo scrivo così:
    codice:
    if campo1 = 0 and campo2 = "0" then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&id&" order by id_campo1 "
    elseif campo1 <> 0 then
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&campo1&" ORDER BY campo1 asc"
    elseif campo2 <> 0 then
    SQL = "SELECT * FROM programma_campo1 where chiave = '"&campo2&"' ORDER BY campo1 asc"
    end if
    mi va in errore
    Error Type:
    Microsoft VBScript runtime (0x800A000D)
    Tipo non corrispondente.: '[string: "SP02"]'
    dov'è l'inghippo???

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ciò che recuperi dalla querystring è sempre stringa quindi:
    codice:
    if campo1 = "0" and campo2 = "0" then 
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "&id&" order by id_campo1 "
    elseif campo1 <> "0" then 
    SQL = "SELECT * FROM programma_campo1 where id_campo1 = "& Cint(campo1) &"   ORDER BY campo1 asc"
    elseif campo2 <> "0" then
    SQL = "SELECT * FROM programma_campo1 where chiave = '"&campo2&"' ORDER BY campo1 asc"
    end if
    
    ....
    .....
    Roby

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie, ma con le modifiche suggerite ricade sempre nella condizione
    codice:
    if rs.eof then
    response.write "K.O."
    anche se nel db i records ci sono...

    Le variabili le passo così:
    codice:
    onChange="window.document.location=pagina.asp?campo1='+this.value;"
    onChange="window.document.location=pagina.asp?campo2='+this.value;"
    nel db campo1 è numerico, mentre campo2 è testo...

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    ... ragazzi m'arrendo e me ne vado a casa senza però prima cercare di spiegare il problema:

    - Ho due select che faccio popolare da un db access secondo i livelli di autorizzazione dell'utente; per cui l'utente registrato a Milano vedrà Milano (prima select) e soltanto le attività organizzate a Milano (seconda select); le due select hanno come valore iniziale 0.

    L'amministratore del web invece vedrà "tutto" di "tutti".

    - In queste due select ho inserito i codici:
    codice:
    onChange="window.document.location=pagina.asp?valoreselectUno='+this.value;"
    
    onChange="window.document.location=pagina.asp?valoreselectDue='+this.value;"
    che richiamano la stessa pagina.asp

    - Quando valoreselectUno e valoreselectDue sono uguali a 0, la query deve restituire tutte le attività organizzate a Milano; se dalla seconda select seleziono un particolare tipo di attività, la query mi deve restituire tutte quelle attività corrispondenti (il discorso vale sia per utenti autorizzati che per l'amministratore del web).

    Mi spiego?

    che mal di testa...

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    up

  6. #6
    Originariamente inviato da [trodat]
    ... ragazzi m'arrendo e me ne vado a casa senza però prima cercare di spiegare il problema:

    - Ho due select che faccio popolare da un db access secondo i livelli di autorizzazione dell'utente; per cui l'utente registrato a Milano vedrà Milano (prima select) e soltanto le attività organizzate a Milano (seconda select); le due select hanno come valore iniziale 0.

    L'amministratore del web invece vedrà "tutto" di "tutti".

    - In queste due select ho inserito i codici:
    codice:
    onChange="window.document.location=pagina.asp?valoreselectUno='+this.value;"
    
    onChange="window.document.location=pagina.asp?valoreselectDue='+this.value;"
    che richiamano la stessa pagina.asp

    - Quando valoreselectUno e valoreselectDue sono uguali a 0, la query deve restituire tutte le attività organizzate a Milano; se dalla seconda select seleziono un particolare tipo di attività, la query mi deve restituire tutte quelle attività corrispondenti (il discorso vale sia per utenti autorizzati che per l'amministratore del web).

    Mi spiego?

    che mal di testa...
    Può darsi che forse non ho capito bene... riassumendo, tu avresti due select correlate:
    - città;
    - omonime attività organizzative.
    Il valore di default è 0 (questo lo controlli e setti con una semplice verifica boolean). Se (if) è 0 (selectUno = 0) allora (then) stampo la lista completa delle città e seleziono Milano, infatti in ogni stringa del select scrivo:
    codice:
    <% If selectUno = 0 Then response.write "select" %>
    Quindi fai una seconda verifica per le attività: se selectUno è uguale a 0, stampa tutte le attività organizzative estratte su Milano, e se selectDue è zero non stampare altro. Se clicco su un'abilità organizzativa, ad esempio la terza, selectDue = 3 e aprirà magari un iframe passando tale numero come ID e ricercandolo nel database.

    Non so se ho capito quel che vuoi fare... probabilmente no perché sennò sarebbe stato troppo facile, ma ti ho scritto qualcosa ugualmente.

  7. #7
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie per la risposta... ma è una giornata che ci sbatto la testa... non appena inserisco nella pagina la parte di codice in rosso, lo script risponde che non ci sono records (ed invece ci sono e come...)
    codice:
    if utente <> 22 then
    SQL = "SELECT * FROM tbDBAccess where IDCD = "&unitaID&" order by IDCD "
    else
    SQL = "SELECT * FROM tbDBAccess order by IDCD "
    end if
    
    RSist = request.querystring("RSist")
    chiave = request.querystring("chiave")
    
    if chiave = "" then
    SQL = "SELECT * FROM tbDBAccess where chiave = '"&chiave&"' order by IDCD "
    else
    SQL = "SELECT * FROM tbDBAccess order by IDCD "
    end if 
    
    set rs = server.createObject("ADODB.Recordset")
    rs.open SQL, cn, 1, 3
    
    if rs.eof then
    
    response.write "Nessun records"
    
    else

  8. #8
    Chiave che valore dovrebbe essere? E' un boolean, o un int?
    Porc le botte

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.