$name1 = @$_GET['search'] ;
$name = split(" +",$name1);
$query = "select * from table where field1 = '".$name[0]."'
and field2 = '".$name[1]."'
Order By `date` DESC"; 我这样做了一个简单的搜索,但是如果$name[0]和$name[1]都有数据,查询就可以工作,如果$name[1]为空,查询就会失败。如何添加判断$name[1]是否为空,隐藏and field2 = '".$name[1]."',并使查询类似
$query = "select * from table where field1 = '".$name[0]."' Order BydateDESC";
发布于 2011-02-24 17:53:39
尝尝这个
if(!empty($name[0]) or !empty($name[1])){
$sql = "select * from table where ";
if($name[0]){
$fld1 = " field1 = '".$name[0]."'";
}
if($name[1]){
$fld2 = " field2 = '".$name[1]."'";
}
if($fld1 && $fld2)
{
$sql .= $fld1 ." and ".$fld2;
}
elseif($fld1){
$sql .= $fld1;
}
elseif($fld2){
$sql .= $fld2;
}
}发布于 2011-02-24 17:50:06
您可以使用or完成此操作
(and field2 = '".$name[1]."' or '".$name[1]."' = '')发布于 2011-02-24 17:53:49
如果您在PHP脚本中执行此检查会更好,如下所示
$query = "select * from table where field1 = '$name[0]'"
if ($name[1]) $query .= " and field2 = '$name[1]'";
$query .= 'order by date desc';
https://stackoverflow.com/questions/5102902
复制相似问题