我有一个文本框搜索和下拉菜单过滤的组合。如果没有选择任何内容(第一个选项),我怎么能做到这一点 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);
简单的:
$b = isset($_POST['b']) ? mysql_real_escape_string($_POST['b']) : 'b';
如果选择了下拉列表并且不是默认值,则在查询中使用该值。如果不是,那么只需将查询设为B=B
,这将始终为真。
首先:提问时请多注意语法,因为我个人觉得您的问题有点模糊且难以理解。
但是,如果我正确理解了您的问题,那么您应该做什么,并且在我看来这是最干净和最易读的,就是检查您的 javascript 或 PHP 代码中是否选择了任何内容,并使用两个 select 语句而不是一个。
第一个只是一个简单的
SELECT * FROM table;
第二个是过滤的选择语句。