こんにちは、Zend_Db_Select に問題があります。私は2つの変数を持っています:カテゴリと都市。これら 2 つの変数には、値がある場合と設定されていない場合があります。だから私は確認します:
$status = '`p`.status = 1';
if($catID){
$catSQL = "`p`.parent = {$catID}";
}else{
$catSQL = '1=1';
}
if($city){
$citySQL = "`pm`.`meta_key` = 'oras' and `pm`.`meta_value` = {$city}";
$citySelect = array('pm' => 'postsmeta');
$condCity = "`p`.`ID` = `pm`.`parent_id`";
}else{
$citySQL = '1=1';
$citySelect = NULL;
$condCity = '1=1';
}
ここに私のクエリがあります:
$select = $db->select()
->from( array('p' => 'posts'))
->from($citySelect)
->where($status)
->where($catSQL)
->where($condCity)
->where($citySQL)
;
問題は、都市が空の場合、次のようなものがあることです
$select = $db->select()
->from( array('p' => 'posts'))
->from('')
->where(1=1)
->where(1=1)
->where(1=1)
->where(1=1)
;
質問は、都市が空の場合、クエリから from('') を削除する方法です。ありがとうございました!