Bu, basit bir görev gibi görünüyor, ama ben bunun için mi bir çözüm bulmak zor bir zaman yaşıyorum. Ben aksak başka bir şey düşünecektim şey bulamıyorum. İşte ben çalışıyorum ne:
Bir arama formu var işlem script mesaj değişkenler olduğunu. Bu değişkenler sorgulanan veriler için filtreler vardır. Kullanıcı haklarına bağlı olarak, erişimi filtreler bağlı olarak gelen daha fazla ya da daha az değişken, olabilir. Her filtre temelde, sonuçlar geliyor tablodaki bir alanla ilişkilidir. Her filtre için bir seçenek "ANY" de, yani hiçbir yan tümcesi gerekli NEREDE.
Sorgu dizesi oluşturmak için iyi bir yolu nedir. $ Ad, $ soyad, yaş $, $ dob: geri geliyor dört değişken var diyelim. Ama sadece bazı kullanıcılar $ yaş ve $ dob göre filtre erişebilirsiniz.
$query = "SELECT * FROM people";
if(($firstname != 'ANY' && !empty($firstname)) ||
($lastname != 'ANY' && !empty($lastname)) ||
($age != 'ANY' && !empty($age)) ||
($dob != 'ANY' && !empty($dob))) {
$query .= " WHERE";
}
if($firstname != 'ANY' && !empty($firstname)) {
$query .= " firstname='$firstname'";
}
if($lastname != 'ANY' && !empty($lastname)) {
if($firstname != 'ANY' || !empty($firstname)) {
$query .= " AND";
}
$query .= " lastname='$lastname'";
}
...
Ve böylece. Ama bu sadece bana aptal korkunç ve gülünç verimsiz görünüyor. Ben biraz değiştirilmiş MVC deseni kullanıyorum, bu yüzden olası her filtre için arama modelinde yöntemler inşa etmek mantıklı olur?