sql过滤表数据

时间:2013-01-20 12:56:31

标签: php sql filter

我有一个超过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个过滤条件进行过滤,其余过滤器留空以显示所有相应的数据?

1 个答案:

答案 0 :(得分: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 = "%";
    }

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