Net als alle andere berichten moet je alle voorwaarden toevoegen met AND like so. Dit is het schoonste antwoord tot nu toe. Vergeet niet om echt aan je strings te ontsnappen, maar gebruik de mysqli OOP-manier in plaats van de oude mysql. Gewoon een suggestie.
Hier is een voorbeeld van een typische zoekopdracht.
Op de juiste manier:
SELECT * FROM donar WHERE name='dxenaretionx' AND sex='M';
De manier waarop je het doet
SELECT * FROM donar WHERE name='dxenaretionx' sex='M';
Code:
function search_donar($_POST) {
$by_name = $_POST['by_name'];
$by_sex = $_POST['by_sex'];
$by_group = $_POST['by_group'];
$by_level = $_POST['by_level'];
//Do real escaping here
$query = "SELECT * FROM donar";
$conditions = array();
if(! empty($by_name)) {
$conditions[] = "name='$by_name'";
}
if(! empty($by_sex)) {
$conditions[] = "sex='$by_sex'";
}
if(! empty($by_group)) {
$conditions[] = "blood_group='$by_group'";
}
if(! empty($by_level)) {
$conditions[] = "e_level='$by_level'";
}
$sql = $query;
if (count($conditions) > 0) {
$sql .= " WHERE " . implode(' AND ', $conditions);
}
$result = mysql_query($sql);
return $result;
}