I am getting a list of users to display on a page using the following code in members.php:
$users = $user->getUsers($_GET['skill'], $_GET['hometowm'], $_GET['county']); members.phpdisplays all membersmembers.php?skill=Foodisplays users with that skillmembers.php?hometown=Foodisplays users of hometown "Foo"members.php?county=Foodisplay users of county (AKA state in US)members.php?skill=Foo&hometown=Foodisplays users of skill and hometownmembers.php?skill=Foo&county=Foodisplays users of skill and county
Here is what I'd like to know: Is there a way I can shorten the amount of if statements or make them more efficient? Am I doing it correctly? Because I don't like the fact I have so many parameters especially when I want to expand.
**User.class.php** public function getUsers($skill = null, $hometown = null, $county = null) { $user_table = $this->cfg['users_table']['table']; # Search Skill if ($skill != null && $hometown == null && $county == null) { $sql = 'SELECT skills.Title, users_skills.SkillId, users.* FROM users INNER JOIN (skills INNER JOIN users_skills ON skills.SkillId = users_skills.SkillId) ON users.UserId = users_skills.UserId WHERE (((skills.Title)="' . $skill . '"))'; # Search Hometown } else if ($hometown != null && $skill == null && $county == null) { $sql = 'SELECT * FROM users WHERE HomeTown = "' . $hometown . '"'; # Search County } else if ($county != null && $skill == null && $hometown == null) { $sql = 'SELECT * FROM users WHERE county = "' . $county . '"'; # Search Skill and Hometown } else if ($skill != null && $hometown != null && $county == null) { //sql # Search Skill and County } else if($skill != null && $county != null && $hometown == null){ } else { $sql = "SELECT * FROM " . $user_table; } $stmt = $this->db->prepare($sql); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } Thanks.