Giống như tất cả các bài đăng khác, bạn sẽ cần phải thêm tất cả các điều kiện với AND như vậy. Đây là câu trả lời rõ ràng nhất cho đến nay. Hãy nhớ thực sự thoát khỏi các chuỗi của bạn mặc dù sử dụng cách mysqli OOP thay vì mysql cũ. Chỉ là một gợi ý.
Đây là ví dụ về một truy vấn điển hình.
Cách đúng:
SELECT * FROM donar WHERE name='dxenaretionx' AND sex='M';
Cách bạn đang làm
SELECT * FROM donar WHERE name='dxenaretionx' sex='M';
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;
}