[英]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.