PHP CODES ======================================================================================== $query = "SELECT u.ID, u.username, u.gender, u.matchGender, u.type, u.age, u.signupDate, u.caption, u.city, u.state, u.hasPhoto FROM user u "; if ((isset($_REQUEST['activelogin'])) and ($_REQUEST['activelogin'] >= 1)) { $query .= " INNER JOIN visitlog vl ON vl.userID = u.ID"; } if ((isset($_REQUEST['activelogin'])) and ($_REQUEST['activelogin'] >= 1)) { $query .= " INNER JOIN visitlog vl ON vl.userID = u.ID"; } if ((isset($_REQUEST['weight'])) and ($_REQUEST['weight'] <> "") or (isset($_REQUEST['height'])) and ($_REQUEST['height'] <> "")) { $query .= " INNER JOIN userprofile up ON up.userID = u.ID"; } for ($i=1;$i<=15;$i++) { if (!empty($_REQUEST[$i])) { if (!is_array($_REQUEST[$i])) { $_REQUEST[$i] = array($_REQUEST[$i]); } $count = 0; foreach ($_REQUEST[$i] as $value) { $count = $count + 1; } } } if ((isset($count)) and ($count > 0)) { $query .= " INNER JOIN userattribute ua ON ua.userID = u.ID"; } $query .= " WHERE 0=0"; if ((isset($_REQUEST['AstroID'])) and ($_REQUEST['AstroID'] >= 1)) { $query .= " AND (u.AstroID =" . $_REQUEST['AstroID'] . ")"; } if ((isset($_REQUEST['type'])) and ($_REQUEST['type'] >= 1)) { $query .= " AND (u.type = " . $_REQUEST['type'] . ")"; } if ((isset($_REQUEST['height'])) and ($_REQUEST['height'] <> "")) { $query .= " AND (up.height " . $_REQUEST['height'] . ")"; } if ((isset($_REQUEST['weight'])) and ($_REQUEST['weight'] <> "")) { $query .= " AND (up.weight " . $_REQUEST['weight'] . ")"; } if ((isset($_REQUEST['state'])) and (strlen($_REQUEST['state'] > 0))) { $query .= " AND (u.state = '" . $_REQUEST['state'] . "')"; } if ((isset($_REQUEST['city'])) and (strlen($_REQUEST['city']) > 0)) { $query .= " AND (u.city = '" . $_REQUEST['city'] . "')"; } if ((isset($_REQUEST['zip'])) and (strlen($_REQUEST['zip'] > 0))) { $query .= " AND (u.zip = '" . $_REQUEST['zip'] . "')"; } if ((isset($_REQUEST['gender'])) and (isset($_REQUEST['matchgender']))) { if ($_REQUEST['gender'] == $_REQUEST['matchgender']) { $query .= " AND (u.gender = '" .$_REQUEST['gender'] . "') AND (u.matchGender = '" . $_REQUEST['matchgender'] . "')"; } elseif (($_REQUEST['gender'] == 'M') and ($_REQUEST['matchgender'] == 'F')) { $query .= " AND (u.gender = 'F') AND (u.matchGender = 'M')"; } elseif (($_REQUEST['gender'] == 'F') and ($_REQUEST['matchgender'] == 'M')) { $query .= " AND (u.gender = 'M') and (u.matchGender = 'F')"; } elseif ($_REQUEST['matchgender'] == 'E') { $query .= " AND (u.matchGender = 'E')"; } else { $query .= " AND (u.matchGender = '" . $_REQUEST['matchgender'] . "')"; } } if ((isset($_REQUEST['minAge'])) and ($_REQUEST['minAge'] > 0)) { $query .= " AND (u.age >= " . $_REQUEST['minAge'] . ")"; } if ((isset($_REQUEST['maxAge'])) and ($_REQUEST['maxAge'] > 0)) { $query .= " AND (u.age <= " . $_REQUEST['maxAge'] . ")"; } if (isset($_REQUEST['countryID'])) { $query .= " AND (u.countryID = " . $_REQUEST['countryID'] . ")"; } if ((isset($_REQUEST['hasPhoto'])) and ($_REQUEST['hasPhoto'] == 2)) { $query .= " AND (u.hasPhoto = 2)"; } if ((isset($_REQUEST['activelogin'])) and ($_REQUEST['activelogin'] >= 1)) { $query .= " AND (vl.arrival DATE_SUB(NOW(), INTERVAL " . $_REQUEST['activelogin'] . " DAY))"; } for ($i=1;$i<=15;$i++) { if (!empty($_REQUEST[$i])) { if (!is_array($_REQUEST[$i])) { $_REQUEST[$i] = array($_REQUEST[$i]); } $query .= " AND (ua.AttributeID = $i) AND (ua.value IN ("; foreach ($_REQUEST[$i] as $value) { if (!empty($value)) { $query .= "$value,"; } } $query .= "0))"; } } $query .= " AND (u.memberStatus = 1) AND (u.profileStatus = 2)"; $query .= " ORDER BY signupDate desc"; ======================================================================================== EXAMPLE OUTPUT OF QUERY ======================================================================================== SELECT u.ID, u.username, u.gender, u.matchGender, u.type, u.age, u.signupDate, u.caption, u.city, u.state, u.hasPhoto FROM user u INNER JOIN userattribute ua ON ua.userID = u.ID WHERE 0=0 AND (up.height BETWEEN 60 AND 72) AND (u.gender = 'F') AND (u.matchGender = 'M') AND (u.age >= 30) AND (u.age <= 35) AND (u.countryID = 1) AND (ua.AttributeID = 1) AND (ua.value IN (2,3,4,5,0)) AND (u.memberStatus = 1) AND (u.profileStatus = 2) ORDER BY signupDate desc ======================================================================================== EXAMPLE URI ======================================================================================== http://127.0.0.1:8102/search.php?action=search&flag=advance&type=&AstroID=&city=&zip=&state=CO&countryID=1&gender=M&matchgender=F&minAge=30&maxAge=35&activelogin=&height=&weight=&1%5B%5D=2&1%5B%5D=3&1%5B%5D=5&2%5B%5D=1&2%5B%5D=3&2%5B%5D=4&2%5B%5D=6&3%5B%5D=5&3%5B%5D=7&3%5B%5D=8&3%5B%5D=9&3%5B%5D=11&4%5B%5D=3&4%5B%5D=6&4%5B%5D=7&5%5B%5D=5&5%5B%5D=6&5%5B%5D=8&6%5B%5D=5&6%5B%5D=7&6%5B%5D=9&6%5B%5D=10&6%5B%5D=11&6%5B%5D=12&6%5B%5D=14&7%5B%5D=3&7%5B%5D=4&7%5B%5D=6&7%5B%5D=7&8%5B%5D=14&8%5B%5D=17&8%5B%5D=20&8%5B%5D=22&8%5B%5D=24&10%5B%5D=4&10%5B%5D=5&14%5B%5D=2&14%5B%5D=4&15%5B%5D=3&15%5B%5D=4&x=34&y=6