表 1 には、ブランド、年、モデルが含まれています
ボード (BMW、フォード、アオディ)
年 (2011、2012、2013)
タイプ (車、SUV、MPV)
ユーザーが選択できる 3 つのドロップダウン メニューを作成しましたクエリ
1、ボードで BMW、年で 2013 を選択しましたが、3 番目のタイプは選択されていませんでした。
ただし、これを実行すると、タイプ フィールドは空で送信され、クエリを実行すると、
board='BMW と等しくなります。 'AND year="2013" AND type=''
選択されていないフィールドが NULL ではないことを理解したいのですが、すべての BMW および 2013 モデルです。
board='BMW'AND year="2013" AND type は null ではありません
または
board='BMW'AND year="2013"
やり方は、
書き方を参考にすることができます
$where = array();if($board){ $where[]=" board='$board'";}if($year){ $where[]=" year='$year'";}....$sql.=(!empry($where)) ? ' where ' . implode(' and ', $where) : '';
投稿後の $_POST を
にします$_POST = array('board' => 'BMW', 'year' => '2013', 'type' => '');
$w = array(); as $k=>$v ) {
if(! empty($v)) $w[] = "$k='$v'"
}
$where = join(' and ', $w); ;
ボード='BMW'および年='2013'を取得します