Page 1 of 1

WHERE keyword to my query

Posted: Mon Feb 10, 2014 12:32 am
by salimali
Hi,
I have a query like below

$query = "SELECT id,event_id,dayNo,themeName,sessionTime,sessionTopic from agenda WHERE event_id='4' AND dayNo='2'";

I don't want to use the same query for all requests.How can i add the WHERE keyword to my query only if the required parameters are passed to my service. I can change query at run time.

Thanks in advance

Re: WHERE keyword to my query

Posted: Mon Feb 10, 2014 3:40 am
by pbs
you can write SQL query like this

Code: Select all

$sql_add = '';
if (isset($eventid))
    $sql_add = " AND event_id = '".$eventid."' ";
if (isset($dayno))
    $sql_add = " AND dayNo = '".$dayno."' ";
$query = "SELECT id,event_id,dayNo,themeName,sessionTime,sessionTopic from agenda WHERE 1 = 1 $sql_add";
may this will work for you

Re: WHERE keyword to my query

Posted: Mon Feb 10, 2014 4:43 pm
by requinix
I personally use an array and implode() like

Code: Select all

$conditions = array();
if (isset($eventid))
	$conditions[] = "event_id = {$eventid}";
if (isset($dayno)) {
	$conditions[] = "dayNo = {$dayno}";
$query = "SELECT id,event_id,dayNo,themeName,sessionTime,sessionTopic from agenda";
if ($conditions)
	$query .= " WHERE " . implode(" AND ", $conditions);