我必须建立一个基于特定条件的查询。有没有比我在下面做的方式更好的做法?它可以正常工作,但是如果有更多的条件,我可以很快地看到它失控,因为我检查是否有任何先前的条件在每次检查新条件时都满足。建立一个长查询,并有很多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