$sql='select * from tb where 1=1';
if($username){
$sql.=" and username=$username";
}
if($email){
$sql.=" and email=$email";
}

解决方案 »

  1.   

    写完了 功能完成了 但是太啰嗦!有4个表  比如 1,2,3,4 4个表是radio的表单类型选中1,2 就只差1,2表的数据!查询条件是 用户名 和 email 两者之间一者可为空 但不能全空!我现在判断了3个类型 给个代码就理解了 我表达能力实在是太over了!
    $type = null; //初始化一个类型
    if($name && !$email)
    $type = 1 只插用户名
    if(!$name && $email)
    $type = 2 只查email
    if($name && $email)
    $type = 3 两者都查 我这样做太啰嗦了 我想要个精简得做法 就是这个意思了!还有一个就是表的问题  我只能把表分成数组 用for循环先 然后我是这样做得for($i=0;$i<$dbnum;$i++){
     if($dbname[$i]=='user')
    //这里查询 用数组保存 返回json
    if($dbname[$i]=='email')
    接着来  效率特低 我又没想到什么别得好办法 求助了!
    }
      

  2.   

    我也没明白楼主的话猜测的回答一下,楼主看看sql函数: union
      

  3.   

    把每个都取出来,如果是空的话,就定义为1,如 只选择了用户名,其余没有选择,则sql语句为:
    select * from table where username = $username AND 1 AND 1 AND 1... 
    如果有的话 替换相应的1的位置