अन्य सभी पोस्ट की तरह आपको सभी शर्तों को AND लाइक के साथ जोड़ना होगा। यह अब तक का सबसे साफ जवाब है। याद रखें कि वास्तव में अपने तारों से बचना चाहिए, हालांकि पुराने mysql के बजाय mysqli OOP तरीके का उपयोग करें। बस एक सुझाव।
यहाँ एक सामान्य क्वेरी का उदाहरण दिया गया है।
सही तरीका:
SELECT * FROM donar WHERE name='dxenaretionx' AND sex='M';
जिस तरह से आप इसे कर रहे हैं
SELECT * FROM donar WHERE name='dxenaretionx' sex='M';
कोड:
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;
}