Smritimay Debnath
Smritimay Debnath

Reputation: 75

Multiple option search from database using single query

$data1=$_REQUEST['data1'];
$data2=$_REQUEST['data2'];
$data3=$_REQUEST['data3'];

mysqli_query($conn,"SELECT pu.id, monthname(pu.date_complete) AS Month 
       FROM `pds_user` pu 
     WHERE monthname(pu.date_complete) IN ('".implode("','",$data1)."') 
     AND pu.date_complete IN ('".implode("','",$data2)."') 
     AND Name IN ('".implode("','",$data3)."')
     ORDER BY Month");

If $data1 is empty, what to do?

Upvotes: 0

Views: 43

Answers (1)

JYoThI
JYoThI

Reputation: 12085

Use !empty then create dynamic where clause

    $where_clause ='where 1=1';

    if(!empty($data1))
    {
       $where_clause .= " And monthname(pu.date_complete) IN ('".implode("','",$data1)."')"; 
    }

    if(!empty($data2))
    {
       $where_clause .= " And pu.date_complete IN ('".implode("','",$data2)."') "; 
    }

    if(!empty($data3))
    {
       $where_clause .= " And Name IN ('".implode("','",$data3)."')"; 
    }

    mysqli_query($conn,"SELECT pu.id, monthname(pu.date_complete) AS Month 
                    FROM `pds_user` pu $where_clause  ORDER BY Month");

Upvotes: 1

Related Questions