//写一段简单表的,查询金额这段写,空值好办,如果要查>、< 或=这样的呢, 谢谢
if($_POST['xd_guest']||$_POST['xd_num']||$_POST['xd_je']||$_POST['xd_user']){
$a=$_POST['xd_guest'];
$b=$_POST['xd_num'];
$c=$_POST['xd_je'];
$d=$_POST['xd_user'];
if (empty($c))
{
$g=LIKE;$c="%$c%";
}else{$g="<";}//这段怎么写
$sql="SELECT * FROM xdd WHERE xd_guest LIKE '%$a%'AND xd_num LIKE '%$b%'AND xd_je $g '$c' AND xd_user LIKE '%$d%' limit 10";
$q=@mysql_query($sql);
while ($r=mysql_fetch_array($q)){

echo "$r[id]:".$r[xd_guest]."\t金额:".$r[xd_je]."<br>";

}

}else{"无符合条件的内容!";}
?>
<form action="" method="post" name="xd_form">
客户名称:<br><input type="text" name="xd_guest"><br>
编号:<br><input type="text" name="xd_num"><br>
金额:<br><input type="text" name="xd_je" ><br>
经办人:<br><input type="text" name="xd_user"><br>
<input type="submit" value="提交"><input type="reset" value="重置">

解决方案 »

  1.   

    用switch($g){
       case ">";
         $sql ="";
         break;
       case "<";
         $sql=""
         break;
      case "="
        $sql =""
        break;
      default:
    XXXXXXXXXXXXXXXXXXXXXX
    }
    $q=@mysql_query($sql); 
    while ($r=mysql_fetch_array($q)){ 
      xxxxxxxxxxxx
    } }else{"无符合条件的内容!";} 
      

  2.   

    只针对金额部分:建议表单写成类似这个样子<?php
    $c=$_POST['xd_je']; 
    $g=$_POST['bj']; 
    $bjje='';
    if(preg_match('/^\d+(\\.\d+)?/',$je))
    {
      if($g=='like')
      $bjje="xd_je $g '%{$c}%'";
       else
      $bjje="xd_je $g $c";//如果xd_je字段类型是数值型的吧
    }
    ="SELECT * FROM xdd WHERE xd_guest LIKE '%$a%' AND xd_num LIKE '%$b%' AND $bjje AND xd_user LIKE '%$d%' limit 10"; 
    ?><form>
    金额:<select id='bj' name='bj'>
      <option value='=' selected>等于</option>
      <option value='>'>大于</option>
      <option value='<'>小于</option>
      <option value='like'>类似</option>
    </select><input type='text' id='xd_je' name='xd_je'>元
    </form>
      

  3.   

    不好意思,上面的正则表达式里的$je请改成$c
      

  4.   

    晕,正则表达式还漏了结尾修饰符,应该如下:
    if(preg_match('/^\d+(\\.\d+)?$/',$c))
      

  5.   

    你的逻辑都错误了,确实不怎么好想,哪有金额又大于,又like的啊,建议好好改一下数据表