テキストボックス検索とドロップダウン メニュー フィルタリングの組み合わせがあります。何も選択されていない場合 (最初のオプション)、mysql select コマンドはそれを値として選択せず、その値によって何もフィルタリングしないようにするにはどうすればよいですか?
select * from table where A like '$A' AND B='$B' AND C='$C'
$query="select * from table where 1";
if(isset($A)&&!empty($A))
$query.=" AND A='".$A."'";
if(isset($B)&&!empty($B))
$query.=" AND B='".$B."'";
if(isset($C)&&!empty($C))
$query.=" AND C='".$C."'";
mysql_query($query);
まず第一に、あなたの質問は少しあいまいで理解しにくいと個人的に思うので、質問するときはもう少し文法に気をつけてください.
しかし、私があなたの質問を正しく理解している場合、あなたがすべきこと、そして私の意見では最もクリーンで読みやすいのは、javascript または PHP コードで何かが選択されているかどうかを確認し、1 つではなく 2 つの select ステートメントを使用することです。
最初のものは単純なものです
SELECT * FROM table;
2 つ目は、フィルター処理を行う select ステートメントです。
単純:
$b = isset($_POST['b']) ? mysql_real_escape_string($_POST['b']) : 'b';
ドロップダウンが選択されていてデフォルトでない場合は、その値をクエリで使用します。そうでない場合は、単にクエリを beB=B
にします。これは常に true になります。