php - 如何在codeigniter中获取和返回记录总数
问题描述
我正在使用codeigniter使用rest api,我想获取记录+总记录+每页记录,但对我不起作用这是我在控制器中的功能
<?php
public function search_shop()
{
$users['rec'] = $this->Model_users->find_shop($_POST);
if($users['rec']!="")
{
$responseJSON = array("Status" => true,"Result" => $users['rec']);
header("content-type:application/json");
$response = json_encode($responseJSON);
echo $response;
}
else
{
$responseJSON = array("Status" => false,"Message" => "There is no matching record");
header("content-type:application/json");
$response = json_encode($responseJSON);
echo $response;
}
}
这是我在模型中的“find_shop”功能,如何获取所有记录总数和每页记录?
public function find_shop()
{
$add_data['page_number'] = ($this->input->post('page_number') && !empty($this->input->post('page_number'))) ? $this->input->post('page_number') : NULL;
$add_data['search'] = ($this->input->post('search') && !empty($this->input->post('search'))) ? $this->input->post('search') : NULL;
$records="10";
$mins="10";
if($add_data['page_number']=="" || $add_data['page_number']=="0" || $add_data['page_number']=="1")
{
$starting_row="0";
$last_row="10";
}
else
{
$last_row="9";
$cd="1";
$lim="10";
$starting_row=$add_data['page_number']*$lim-$last_row-$cd;
$last_row=$add_data['page_number']*$records-$cd;
}
$this->db->select('*');
$this->db->from('shop s');
$this->db->like('shop_name',$add_data['search']);
$this->db->or_like('city',$add_data['search']);
$this->db->limit($last_row,$starting_row);
$query = $this->db->get();
if ( $query->num_rows() > 0 )
{
$row = $query->result_array();
return $row;
return $query->num_rows;
}
else
{
return false;
}
}
?>
解决方案
像这样更改您的 if 条件:
$records="10"; // This is records per page showing
if ($add_data['page_number']=="" || $add_data['page_number']=="0" || $add_data['page_number']=="1")
{
$starting_row="0";
} else {
$starting_row = ($add_data['page_number'] - 1) * $records;
}
您需要设置查询的限制和偏移量。例如:limit 0, 10:这将显示前 10 条记录。这里 0 是起点,10 是您要显示的记录的长度。10 将始终与您显示 10 条记录相同。限制 10、10:它将显示 10 到 19 的记录。希望它能消除您的疑问。
推荐阅读
- c# - 从其中的 20 个 c# 中选择随机图片框
- bash - 仅在 gnu 并行运行所有作业后执行命令
- web - 我对(同源政策)SOP 实施的理解是否正确?
- python - urllib.request.Request() 总是以 HTTP 错误 400 问题结束
- python - Docker Container Attach_Socket 中的 Python 脚本不在单独的行上发送
- c++ - 批处理模式规则中的多个源路径 [nmake]
- entity-framework - EntityFramework.xml 和 EntityFramework.SqlServer.xml - 它们的目的是什么?
- html - 更改语言 Django 时,日期字段值消失
- android - RenderBox 未布置:RenderRepaintBoundary#21325 NEEDS-LAYOUT NEEDS-PAINT
- c# - 如何检查数组中是否存在值