Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter动态分页和未分页的位置_Php_Mysql_Codeigniter_Pagination - Fatal编程技术网

Php Codeigniter动态分页和未分页的位置

Php Codeigniter动态分页和未分页的位置,php,mysql,codeigniter,pagination,Php,Mysql,Codeigniter,Pagination,因此,我的模型中有一个函数,它可以完成分页表的作业,但前提是这些作业尚未预订 我的第一个函数计算有多少页等的结果 function record_count() { $this->db->select('id'); $this->db->from('jobs'); $this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE); return $t

因此,我的模型中有一个函数,它可以完成分页表的作业,但前提是这些作业尚未预订

我的第一个函数计算有多少页等的结果

function record_count() {
  $this->db->select('id');
  $this->db->from('jobs');
  $this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE);
  return $this->db->count_all("jobs");
}
我的第二份工作实际上带来了就业机会

function getPagedJobs($limit, $start){
  $this->db->limit($limit, $start);
  $grabPagedJobs = $this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE)->get("jobs");

  if ($grabPagedJobs->num_rows() > 0) {
    foreach ($grabPagedJobs->result() as $row) {
      $data[] = $row;
    }
    return $data;
  }
  return false;
}
问题是第二个函数可以很好地获取作业,并且不显示已预订的作业。但是第一个计算页面数的函数似乎仍然计算所有结果,甚至是预定的结果。因此,在分页结果上给我空页和无效参数

我在很多方面都搞砸了,如果可能的话我更喜欢活动唱片,但我没有成功


谢谢,

在您的实现中,您正在使用函数
$this->db->count\u all
,它统计表中的所有行

如果要计算特定查询中的行数,应使用
$this->db->count\u all\u results
函数。正确的实施方法是:

function record_count() {
  $this->db->select('id');
  $this->db->from('jobs');
  $this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE);
  return $this->db->count_all_results("jobs");
}

您在这里的陈述有误,

return $this->db->count_all("jobs");
$this->db->select('COUNT(*) as count');
$this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE);
$query = $this->db->get('jobs');

$result = $this->db->result($query);
return $result->count;
count\u all(“作业”)
将为您提供
jobs
表中的行数


将其替换为此-

return $this->db->count_all_results("jobs");
阅读文件-


ci
中的
计数的替代方法,

return $this->db->count_all("jobs");
$this->db->select('COUNT(*) as count');
$this->db->where('`id` NOT IN (SELECT `jobs_id` FROM `jobs_user`)', NULL, FALSE);
$query = $this->db->get('jobs');

$result = $this->db->result($query);
return $result->count;

谢谢这么小的一件事!谢谢给了Parag提供文件的答案!