你的SQL动态生成就行啦,例如:$sql="select * from tablename where 1 and";if ($condition1!="")
    $sql.=" field1='$condition1'";if ($condition2!="")
    $sql.=" field2='$condition2'";.....

解决方案 »

  1.   

    $condition1就是你的表单提交的变量咯,假如你提交的有 $title、$content两个输入框, 比如查标题可以把$condition1换成 $title 。
      

  2.   

    从我的search上扯下来的
    $sqlstr="SELECT * FROM soft WHERE 1";
    if($class&&$class!='all') $sqlstr=$sqlstr." AND class='$class'";
    if($os&&$os!='all') $sqlstr=$sqlstr." AND os='$os'";
    if($type&&$type!='all') $sqlstr=$sqlstr." AND type='$type'";
    if($uploaduser!='') $sqlstr=$sqlstr." AND username='$uploaduser'";
    if($keyword!='') $sqlstr=$sqlstr." AND title LIKE '%$keyword%' OR softname LIKE '%$keyword%' OR brief LIKE '%$keyword%'";
    $sqlstr=$sqlstr." ORDER by storetime DESC,score DESC,softid DESC";
      

  3.   

    1 and condition是一个逻辑表达式,是where子句的判断条件
    如果没有condition,这个表达式的值恒为1,返回所有的记录。如果把1换成1>0 之类的也是可以的
    如果你设定了条件,1 and condition的值就随condition变化,即condition为真的时候1 and condition才为真,满足这样条件的记录才会返回。
    如果只写成$sql="select * from tablename where ".$condition;那么没有$condition字符串的时候(即条件为空),语法就错了。
      

  4.   

    nne998代码有点小错,应是
    $sql="select * from tablename where 1 and";if ($condition1!="")
        $sql.=" field1='$condition1 and'";if ($condition2!="")
        $sql.=" field2='$condition2 and'";
    .......$sql.=" 1";