Thay vì tất cả những điều kiện đó về việc có nên thêm AND
hay không khi nối với truy vấn, hãy sử dụng một mảng và implode
.
$fields = array('sport' => 'sport',
'gender' => 'gender',
'fname' => 'firstName',
'lname' => 'lastName',
'country' => 'country');
$wheres = array();
foreach ($fields as $postfield => $dbfield) {
if ($_POST[$postfield] != 'showAll') {
$wheres[] = "$dbfield = '" . mysql_real_escape_string($_POST[$postfield]) . "'";
}
}
$selectString = "SELECT t2ath.lastName, t2ath.firstName, t2ath.image, t2ath.sport, t2ath.gender, t2ath.country, t2country.flag
FROM t2ath LEFT JOIN t2country
ON t2ath.country = t2country.name";
if (count($wheres) > 0) {
$selectString .= " WHERE " . implode(" AND ", $wheres);
}
$result = mysql_query($selectString);
Để xem cách thực hiện tương tự bằng cách sử dụng các câu lệnh do PDO chuẩn bị, hãy xem câu trả lời của tôi tại đây: Cách tiếp cận mã nào sẽ cho phép người dùng áp dụng ba biến tùy chọn trong PHP / MySQL?