Search code examples
phpmysqlarraysconditional-statementsclause

Dynamically creating OR conditions by passing an array to a query in MySQL PHP


I am trying to create OR condition dynamically using an array. Given an array, of course names $courses = array('Eng, 'Deu', 'Bio', 'Chemi') I want to have a SQL query that uses the values of the array in its AND clause with OR conditions like:

    SELECT *
        FROM classe
        /* The OR conditions should be created in AND clause using array */
        WHERE class = 'EFG' AND (course = 'Eng' OR course = 'Deu' OR course = 'Bio')

I trying to do it in PHP MySQL.

Any help would be really appreciated.

Thanks in Advance.


Solution

  • Instead of so many OR clauses, you can simply use IN(..):

    SELECT *
    FROM classe
    WHERE class = 'EFG' AND course IN ('Eng' ,'Deu', 'Bio')
    

    In the PHP code, you can use implode() function to convert the array into a comma separated string, and use it in the query string generation.