PHP MySQL counter/loop query -
i'm doing mysql query search items in database. i've pulled variables out of search form i'm having problems clause. don't want search on fields haven't been input in form. code have @ minute is:
$query = " select requestid, clients.clientname, clients.username, requestassignee, requests.statusid, requests.priorityid, statusname, priorityname requests inner join clients on requests.clientid = clients.clientid inner join statuses on requests.statusid = statuses.statusid inner join priorities on requests.priorityid = priorities.priorityid "; if(!empty($requestid)) { $query2 .= "requestid = '" . $requestid . "' or "; } if(!empty($clientname)) { $query2 .= "clients.clientname = '" . $clientname ."' or "; } if(!empty($username)) { $query2 .= "clients.username = '" . $username . "' or "; } if(!empty($requestassignee)) { $query2 .= "requestassignee = '" . $requestassignee . "' or "; } if(!empty($status)) { $query2 .= "statuses.statusname = '" . $status ."' or "; } if(!empty($priority)) { $query2 .= "priorities.priorityname = '" . $priority ."'"; }
however can see issue whereby if searches 1 field, query adds 'or' end, resulting in error:
select requestid, clients.clientname, clients.username, requestassignee, requests.statusid, requests.priorityid, statusname, priorityname requests inner join clients on requests.clientid = clients.clientid inner join statuses on requests.statusid = statuses.statusid inner join priorities on requests.priorityid = priorities.priorityid requestid = '3' or
im guessing i'm going have put sort of loop or counter in unsure how approach it. ideas?
thanks, matt.
$parts = array(); if(!empty($requestid)) { $parts[] = "requestid = '" . $requestid . "' "; } if(!empty($clientname)) { $parts[] = "clients.clientname = '" . $clientname ."' "; } if(!empty($username)) { $parts[] = "clients.username = '" . $username . "' "; } if(!empty($requestassignee)) { $parts[] = "requestassignee = '" . $requestassignee . "' "; } if(!empty($status)) { $parts[] = "statuses.statusname = '" . $status ."' "; } if(!empty($priority)) { $parts[] = "priorities.priorityname = '" . $priority ."' "; } $query2 .= implode(' or ', $parts);
Comments
Post a Comment