if($_GET['a']&$_GET['b'])
{
$result=mysql_query("SELECT * FROM xxx WHERE e0 = '$_GET[a]' AND e1 = '$_GET[b]'",$xxx);
}就是说当$_GET['a']为空时忽略$_GET['a']或者$_GET['b']为空时忽略$_GET['b']甚至两者皆为空时同时忽略$_GET['a']和$_GET['b']......~(^@^)~

解决方案 »

  1.   

    最笨的办法,逐个条件判断
    if($_GET['a']&!$_GET['b']) 

    $result=mysql_query("SELECT * FROM xxx WHERE e0 = '$_GET[a]'",$xxx); 
    }
    if(!$_GET['a']&!$_GET['b']) 

    $result=mysql_query("SELECT * FROM xxx WHERE e1 = '$_GET[b]'",$xxx); 

    if($_GET['a']&$_GET['b']) 

    $result=mysql_query("SELECT * FROM xxx WHERE e0 = '$_GET[a]' AND e1 = '$_GET[b]'",$xxx); 

    要是JAVA的话,用hibernate或ibatis非常容易实现。
      

  2.   

    LZ 上的说得对,HIBERNATE 和 IBATIS 都有动态查询
      

  3.   

    if($_GET['a'])  $a="e0='$_GET['a']'";if($_GET['b'])  $b=" and e1='$_GET['b']'";$result=mysql_query("SELECT * FROM xxx WHERE $a $b,$xxx);