【发布时间】:2013-10-03 14:31:36
【问题描述】:
我在codeigniter中做了这个功能:
public function get_users_pagination($q, $perpage, $pagenr, $type = 1)
{
$query = $this->db->get_where('korisnici_tbl', array("type" => $type), $perpage,$pagenr);
$this->db->like('email', $q);
$this->db->or_like('name', $q);
return $query->result();
}
但是当结果小于 $perpage 变量时,它仍然返回 $perpage 数量的行。
因此,如果 $pagenr 是例如 10 并且有 2 行类型为 1,它只会返回 8 其他类型为 2 的行。
【问题讨论】:
-
echo $this->db->last_query();检查你得到的查询是什么我猜or_like有问题 -
它返回给我这个并且看起来不错:SELECT * FROM (
korisnici_tbl) WHEREtype= 2 ANDemailLIKE '%%' ORnameLIKE '%%'限制 10 有 2 行是类型 2,但它返回我 10 行 -
这是因为它会获取您需要的名称匹配或电子邮件匹配的记录,将您包装起来或放在像
type = 2 AND (email LIKE '%%' OR name LIKE '%%' )这样的组中 -
是的,我注意到了。当我删除 or_like 时,它确实工作得很好。那你知道怎么做吗?
标签: php sql codeigniter pagination