我有这个问题,我找不到有什么问题。 所以,我的控制器:
$config = array();
$config["base_url"] = base_url() . "products/page/";
$config["total_rows"] = count($this->model_add->countProducts());
$config["per_page"] = 12;
$config["uri_segment"] = 4;
$config["num_links"] = 2;
$config["use_page_numbers"] = true;
模型:
public function countProducts() {
$query = $this->db->query("SELECT * FROM `tdt_articles` WHERE `deleted` = 0 AND `article_type` = 3");
return $query->result();
}
我的问题是,在我的网页中,它显示的页面应该显示较少。如果在$config["total_rows"]
上我把它显示的确切记录数量显示出来,但是如果我把它们看作是在那里显示的那样,它并没有向我显示所有这些记录。根本无法理解是什么问题。希望你能帮助我!谢谢!!!
答案 0 :(得分:1)
您将返回数据对象而不是实际的int行数。将模型方法更改为:
public function countProducts()
{
$query = $this->db->query("SELECT * FROM `tdt_articles` WHERE `deleted` = 0 AND `article_type` = 3");
return $query->num_rows();
}
或者,您可以使用活动记录构建查询:
public function countProducts()
{
$result = $this->db->from('tdt_articles')
->where('deleted', 0)
->where('article_type', 3)
->get();
return $result->num_rows();
}
您需要使用num_rows()
方法获取结果中的记录数。
result_array()
返回多维结果数组。row_array()
返回一维结果数组 - 对于一条记录results()
会返回stdClass
个对象num_rows()
返回一个整数,指定数据库返回的记录数。答案 1 :(得分:0)
public function countProducts() {
$query = $this->db->query("SELECT * FROM `tdt_articles` WHERE `deleted` = 0 AND `article_type` = 3");
return $query->result();
}
select子句不应该是:
SELECT count(id) as record_count
方法/函数应该返回record_count的输出。
[编辑] 现在你不需要在之后进行计数(...)。另外你让数据库处理它,这比让php处理它更快。 [/编辑]
答案 2 :(得分:0)
控制器:
$total_rows = $this->model_add->countresults()->num_rows();
$config = array();
$config["base_url"] = base_url() . "products/page/";
$config["total_rows"] = $total_rows;
$config["per_page"] = 12;
$config["uri_segment"] = 4;
$config["num_links"] = 2;
$config["use_page_numbers"] = true;
模型:
function countresults() {
$this->db->select('*');
$this->db->from($this->table);
return $this->db->get();
}