首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php select from where and problem

php select from where and problem
EN

Stack Overflow用户
提问于 2011-02-24 17:48:07
回答 4查看 1.1K关注 0票数 0
代码语言:javascript
复制
$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";

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-24 17:53:39

尝尝这个

代码语言:javascript
复制
 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;
    }

 }
票数 1
EN

Stack Overflow用户

发布于 2011-02-24 17:50:06

您可以使用or完成此操作

代码语言:javascript
复制
(and field2 = '".$name[1]."' or '".$name[1]."' = '')
票数 2
EN

Stack Overflow用户

发布于 2011-02-24 17:53:49

如果您在PHP脚本中执行此检查会更好,如下所示

代码语言:javascript
复制
$query = "select * from table where field1 = '$name[0]'"
if ($name[1]) $query .= " and field2 = '$name[1]'";
$query .= 'order by date desc';

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5102902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档