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

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -