我必須建立一個基於特定條件的查詢。有沒有比我在下面做的方式更好的做法?它可以正常工作,但是如果有更多的條件,我可以很快地看到它失控,因爲我檢查是否有任何先前的條件在每次檢查新條件時都滿足。建立一個長查詢,並有很多if語句 - 是否有更優雅的方式?
$sql = "SELECT DISTINCT fkRespondentID FROM tblRespondentDayTime";
if (!empty($day) || !empty($time) || !empty($sportID)) {
$sql .= " WHERE";
if (!empty($day)) {
$sql .= " fldDay='$day'";
}
if (!empty($time)) {
if (!empty($day)) {
$sql .= " AND";
}
$sql .= " fldTime='$time'";
}
if (!empty($sportID)) {
if (!empty($day) || !empty($time)) {
$sql .= " AND";
}
$sql .= " fkRespondentID IN (SELECT fkRespondentID FROM tblRespondentSport WHERE fkSportID='$sportID')";
}
}
這是一個很好的問題:) – dmp 2010-08-12 18:54:56