参考
$sql = "SELECT * FROM customer ";
$tmp = "";
if (!empty($condition['company']))
$tmp .= (empty($tmp)?"WHERE":"AND")." company LIKE '%".$condition['company']."%' ";
if (!empty($condition['trade']))
$tmp .= (empty($tmp)?"WHERE":"AND")." trade LIKE '%".$condition['trade']."%' ";
if (!empty($condition['level']))
$tmp .= (empty($tmp)?"WHERE":"AND")." level = '".$condition['level']."' "; 
if (!empty($condition['visiter']))
$tmp .= (empty($tmp)?"WHERE":"AND")." visiter = '".$condition['visiter']."' "; 
if (!empty($condition['departmentId']))
$tmp .= (empty($tmp)?"WHERE":"AND")." departmentId = '".$condition['departmentId']."' ";
if (!empty($condition['status']))
$tmp .= (empty($tmp)?"WHERE":"AND")." status = '".$condition['status']."' "; 
if (!empty($condition['startTime']) && !empty($condition['startTime']))
$tmp .= (empty($tmp)?"WHERE":"AND")." TO_DAYS(visitime) BETWEEN TO_DAYS('".$condition['startTime']."') AND TO_DAYS('".$condition['endTime']."') ";
if (!empty($condition['order_by']))
$tmp .= "ORDER BY ".$condition['order_by'];
if (!empty($condition['order_by']) && !empty($condition['descent']))
$tmp .= " DESC ";
if (isset($condition['start']) && isset($condition['rows']))
   $tmp .= "LIMIT ".$condition['start'].", ".$condition['rows'];
$sql .= $tmp;

解决方案 »

  1.   

    楼主只要搞懂$a=b?c:d就可以了。
      

  2.   

    输入框用字段名命名,这样便于程序操作
    $name = array("field1","field2","field3"); //构造一个数组,保存所有可能参与查询的字段名
    $ar = array();
    foreach($name as $na)
      if(! empty($_POST[$na])) { //判断对应的输入框是否有值
        $ar[] = "$na='".$_POST[$na]."'"; //如有则生成表达式
      }$sqlstr = "select * from tbl_name where ". join(" or ",$ar); //装配成查询串
      

  3.   

    http://myblog.boei.cn/index.php?show=blog&id=68