• User

    Problema SELECT, AND, OR

    Ciao a tutti, ho un problemino da risolvere riguardo una istruzione in PHP per selezionare dei record in una tabella:

    dalla tabella NEGOZI devo soddisfare ENTRAMBE le 2 condizioni:

    1. il negozio deve essere attivo (WHERE disattivo = FALSE)
    2. almeno uno dei due valori deve essere superiore a 0 (percentuale_visita > 0 OR importovisita > 0)

    pertanto ecco la Select che ho formato:

    SELECT * FROM negozi WHERE disattivo = FALSE AND (percentuale_visita > 0 OR importovisita > 0)

    Malgrado ciò, il programma php interpreta questo comando nel seguente modo:

    1. disattivo = FALSE AND percentuale_visita > 0
    2. importovisita > 0

    che non e' giustamente quello che voglio ottenere. Qualcuno sa aiutarmi?
    GRAZIEEEE


  • User

    Ciao,
    quando crei le query inserendo and e or , devi usare anche le parentesi in modo appropriato 😉

    SELECT * FROM negozi WHERE (disattivo = FALSE) AND ((percentuale_visita > 0) OR (importovisita > 0))


  • User

    Problema risolto.

    Purtroppo non mi ero accorto che c'e' un altra parte di programma che esegue un altra serie di query ma senza parentesi e quindi quando il programma passava in quella zona non funzionava.

    Comunque la query funziona perfettamente in questo modo:

    $sql = "SELECT * FROM negozi WHERE disattivo = FALSE AND (importovisita > 0 OR percentuale_visita > 0)";

    e' sufficiente inserire solo queste due parentesi! Testato e funzionante.

    Grazie comunque a tutti per l'attenzione.