Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Condizioni da rispettare in una query sql

    Ciao

    dovrei estrarre con una query una serie di dati secondo il valore che arriva dal form e scrivo così:
    codice:
    cod = Request.querystring("cat")
    cad = Request.querystring("uoat")
    email = Request.querystring("email")
    
    DIM ARR_DALFORM
    ARR_DALFORM = split(cod, "-")
    cod0 = ARR_DALFORM(0)
    
    DIM ARR_DALFORMM
    ARR_DALFORMM = split(cad, "-")
    cad0 = ARR_DALFORMM(0)
    
    
    If cod0 <> 0 and cad0 = 0 then
      strSQL = "SELECT * FROM ListFiles WHERE id_cat = "&cod0&" and Stato IS NULL"
    end if
    
    if cod0 <> 0 and cad0 <> 0 then
      strSQL = "SELECT * FROM ListFiles WHERE id_uoat = "&cad0&" and Stato IS NULL"
    End If
    perchè quando si verifica la seconda condizione, cioè:
    codice:
    if cod0 <> 0 and cad0 <> 0 then
    strSQL = "SELECT * FROM ListFiles WHERE id_uoat = "&cad0&" and Stato IS NULL"
    la query estrae sempre come se fosse rispettata sempre la prima condizione?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    If len(cod0) > 0 and len(cad0) = 0 then


    Ammesso che con cad0 = 0 intendessi dire che la variabile è vuota e non che abbia valore 0...

    Roby

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    If len(cod0) > 0 and len(cad0) = 0 then


    Ammesso che con cad0 = 0 intendessi dire che la variabile è vuota e non che abbia valore 0...

    Roby
    ti ringrazio ma anche così continua ad estrarre sempre la prima condizione... la variabile deve essere uguale a zero...

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova a farti stampare cod0 e cad0 e guarda cosa valgono.


    Roby

  5. #5
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    strano...prova con un Cint se sono numeri interi ovviamente...
    codice:
    If cod0 <> 0 and cint(cad0) = 0 then
      strSQL = "SELECT * FROM ListFiles WHERE id_cat = "&cod0&" and Stato IS NULL"
    else
    strSQL = "SELECT * FROM ListFiles WHERE id_uoat = "&cad0&" and Stato IS NULL"
    end if
    se non funzica metti una response.write di cod0 e cad0 prima dell'if e vedi se il valore arriva nel modo esatto
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Dunque... ho un form con 3 campi: cat, uoat, email;
    cat e uoat si popolano da un dbase;
    il valore iniziale (se non selezionati) di cat e uoat è uguale a zero;
    se nel form seleziono solo un valore cat e niente uoat la query, dopo lo split, dovrebbe estrarre così:
    codice:
    If len(cod0) <> 0 and len(cad0) = 0 then
      strSQL = "SELECT * FROM ListFiles WHERE id_cat = "&cod0&" and Stato IS NULL"
      response.write "sei qui 
    "
    end if
    se cat e uoat sono diversi da zero, dovrebbe estrarre così:
    codice:
    If len(cod0) <> 0 and len(cad0) <> 0 then
      strSQL = "SELECT * FROM ListFiles WHERE id_uoat = "&cad0&" and Stato IS NULL"
      response.write " qui
    "
    End If
    Ebbene se seleziono un valore dalla select cat e niente (zero) da uoat la condizione restituisce errore, secondo voi perchè????

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    If cstr(cod0) <> "0" and cstr(cad0) = "0" then
      strSQL = "SELECT * FROM ListFiles WHERE id_cat = "&cod0&" and Stato IS NULL"
      response.write "sei qui 
    "
    end if
    
    
    If cstr(cod0) <> "0" and cstr(cad0) <> "0" then
      strSQL = "SELECT * FROM ListFiles WHERE id_uoat = "&cad0&" and Stato IS NULL"
      response.write " qui
    "
    End If
    Roby

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie Roby adesso funziona regolarmente, però una cosa qual'è la differenza nell'utilizzo di:
    codice:
    If cstr(cod0) <> "0" and cstr(cad0) = "0" then
    If len(cod0) <> 0 and len(cad0) = 0 then
    If cod0 <> 0 and cint(cad0) = 0 then
    come e dove vanno previsti? ciao.

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    I dati che passano via form o querystring sono sempre stringhe anche se contengono numeri.
    Se non devi farci operazioni ma verificare il loro semplice valore lasciali in quel formato ovvero "0".
    La len misura la lunghezza del contenuto di una variabile.

    Roby

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.