繁体   English   中英

带有限制和偏移量的 CodeIgniter sql 查询未显示结果

[英]CodeIgniter sql query with limit and offset not showing results

我试图在搜索后从数据库中检索名称列表,并且由于搜索的性质,我必须使用自定义 sql 而不是默认的 codeigniter 。 由于我需要进行分页,因此必须使用动态限制和偏移量。 但是,我发现它没有给我正确的结果。 我已经在 mysql 中测试了这个查询并且它有效。 我不确定我哪里出错了。 请帮忙

我的型号:

public function count_search($id,$input){
        $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', first_name, last_name) LIKE '%$input%'";
        $query = $this->db->query($sql);
        $count = $query->num_rows();
        if($count>0){
            return $count;
        }else{
            return 0;
        }
    }

public function search($limit,$start,$id,$input){
            $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', first_name, last_name) LIKE '%$input%'";
            $query = $this->db->query($sql);
            if($query->num_rows()>0){
                foreach($query->result()as $row){
                    $contacts[] = $row;
                }
                return $contacts;
            }
            return false;
    }

试试这个..你忘了在你的查询中提到限制参数

public function search($limit,$start,$id,$input){
        $sql = "SELECT * FROM contacts WHERE CONCAT_WS(' ', 
        first_name, last_name) LIKE '%$input%' Limit ".$start.",".$limit;
        $query = $this->db->query($sql);
        if($query->num_rows()>0){
            foreach($query->result()as $row){
                $contacts[] = $row;
            }
            return $contacts;
        }
        return false;
}

我面临同样的问题,在我最近的项目,这让我疯狂只是通过在同一issue.I've调试同样的事情,花了太多天从这个链接阅读一个答案: #1回答我检查我的$输入值我已经看到它在 $input 字符串值中带有圆括号-->(),因为 LIKE 运算符没有在 codeignitor 中返回结果,并且相同的查询在 phpmyadmin 中可以流畅地工作。

但是当我从字符串中删除圆括号时,它也在 codeignitor 中流畅地工作。 您需要检查 $input 字符串不包含太多特殊字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM