[英]Running two queries with Datamapper in Codeigniter
我想执行两个查询,一个查询获取所有结果的计数,一个查询获取9的实际结果。9我的问题是当我尝试获取结果计数时:第二个查询从数据库中获取所有9行没有WHERE
子句。
$courses = $this->load->model("course")->where("deleted",0);
$courses->where("country",strtolower($country));
$courses->count(); // returns 15
$courses->offset(($per_page)*9)->limit(9);
$courses->get(); // returns 9 rows from all database (like select * from courses limit 9) without where country=france
我的问题是我想计算所有结果,但我只想得到9个结果用于分页
新手Codeigniter用户所需的帮助
class Course extends DataMapper {
var $table = 'course';
var $error_prefix = '<li>';
var $error_suffix = '</li>';
function __construct($id = NULL) {
parent::__construct($id);
}
}
据我所知,您必须对数据库执行两个查询:
您的问题是您认为活动记录正在保留您的结果。 当您执行count
,Datamapper将返回查询结果并将为新查询做好准备,因此,它不会保留where子句。
尝试分两个步骤进行。 为了计数:
$courses = $this->load->model("course")->where("deleted",0);
$courses->where("country",strtolower($country));
$counting = $courses->count(); // returns 15
为了检索结果:
$courses = $this->load->model("course")->where("deleted",0);
$courses->where("country",strtolower($country));
$courses->offset(($per_page)*9)->limit(9);
$results = $courses->get(); // returns 9 rows from all database (like select * from courses limit 9) without where country=france
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.