0

我有一个超过 10 列的表。我可以使用sql以下命令过滤数据:

mysql_select_db("mydb", $con);

$sql="SELECT * FROM files WHERE PUB LIKE '".$PUB."' AND
ID LIKE '".$ID."' AND PG_NO LIKE '%".$PG_NO."%' AND
SECTION LIKE '".$SECTION."' AND EDITION LIKE '%".$EDITION."%' AND
COLOR LIKE '".$COLOR."' AND REVISION LIKE '".$REVISION."'";

问题是我必须填写搜索/过滤查询的每个字段。我有时想使用所有字段和其他一些字段。

有什么方法可以只使用 1 个或 2 个过滤条件进行过滤,其余过滤器留空以显示所有相应的数据?

4

1 回答 1

0

在调用 SQL 语句之前添加它

if(isset($PUB)){}
else{
    $PUB = "%";
    }
if(isset($ID)){}
else{
    $ID = "%";
    }   
if(isset($SECTION)){}
else{
    $SECTION = "%";
    }
if(isset($EDITION)){}
else{
    $EDITION = "%";
    }
if(isset($COLOR)){}
else{
    $COLOR = "%";
    }
if(isset($REVISION)){}
else{
    $REVISION = "%";
    }

如果没有选择任何选项,我们实际上要做的是给出所有标准通配符。

于 2013-01-20T19:11:26.780 回答