Trying to query MySQL for search results. MySQL Query: if(isset($_POST['skill']) and $_POST['skill'] != '') { $skills = $_POST['skill']; if (count($skills) > 0) { // loop through the array for ($i=0;$i<count($skills);$i++) { $sql .= " and (primary_skills.primary_skill IN ('".$skills[$i]."') OR primary_skills.primary_skill IN ('".$skills[$i]."')) "; } } } Code (markup): My var_dump for the query is showing: and (primary_skills.primary_skill IN ('MAFS.1.G.1.2') OR primary_skills.primary_skill IN ('MAFS.1.G.1.2')) and (primary_skills.primary_skill IN ('MAFS.1.G.1.3') OR primary_skills.primary_skill IN ('MAFS.1.G.1.3')) Code (markup): It works like a charm when only one selection from the multiple select-box is made, but when two or more is made, I get multiple AND & OR in the query.
That's right, because you have "AND & OR " in one string in cycle. I don't know your goal, but it seems you don't need "OR". Why do you use it?
I have it working now: if(isset($_POST['skill']) and $_POST['skill'] != '') { $skills = $_POST['skill']; $sql .= " and (primary_skills.primary_skill = '".$skills[1]."'"; if (count($skills) > 0) { // loop through the array for ($i=0;$i<count($skills);$i++) { $sql .=" OR primary_skills.primary_skill ='".$skills[$i]."' "; } } } $sql .= ")"; Code (markup):