Php Codeigniter将实际行数(不限于)从模型传递到控制器
只想使用Codeigniter显示分页的搜索结果和结果数(例如“Find 17 results”)。一切正常,但它显示“找到5个结果”,而不是“找到17个结果”。请检查下面的代码,并帮助我将实际行数(不限于)从模型传递到控制器 我的模型:Php Codeigniter将实际行数(不限于)从模型传递到控制器,php,mysql,codeigniter,Php,Mysql,Codeigniter,只想使用Codeigniter显示分页的搜索结果和结果数(例如“Find 17 results”)。一切正常,但它显示“找到5个结果”,而不是“找到17个结果”。请检查下面的代码,并帮助我将实际行数(不限于)从模型传递到控制器 我的模型: public function did_get($city, $limit, $offset) { $this->db->select('*'); $this->db->from('table'); $th
public function did_get($city, $limit, $offset) {
$this->db->select('*');
$this->db->from('table');
$this->db->where('city', $city);
$query = $this->db->get();
$this->db->limit($limit, $offset);
if ($query && $query->num_rows() > 0) {
return $query->result_array();
} else {
return false;
}
}
我的控制器:
if ($this->model_get->did_get($city, $limit, $offset)) {
$data["count"] = $this->model_get->did_get_count($city);
$data["results"] = $this->model_get->did_get($city, $limit, $offset);
$this->load->view("view_results",$data);
我无法对此进行测试,但请检查以下内容:
public function did_get($city, $limit, $offset) {
$this->db->select('*');
$this->db->from('table');
$this->db->where('city', $city);
$query = $this->db->get();
$array["count"] = $query->num_rows();
$this->db->limit($limit, $offset);
if ($query && $query->num_rows() > 0) {
$array["results"] = $query->result_array();
} else {
$array["results"] = false;
}
return $array;
}
然后,在控制器中,您可以轻松访问数据:
$limit = 5;
$this->load->view("view_results",$this->model_get->did_get($city, $limit, $offset));
我无法对此进行测试,但请检查以下内容:
public function did_get($city, $limit, $offset) {
$this->db->select('*');
$this->db->from('table');
$this->db->where('city', $city);
$query = $this->db->get();
$array["count"] = $query->num_rows();
$this->db->limit($limit, $offset);
if ($query && $query->num_rows() > 0) {
$array["results"] = $query->result_array();
} else {
$array["results"] = false;
}
return $array;
}
然后,在控制器中,您可以轻松访问数据:
$limit = 5;
$this->load->view("view_results",$this->model_get->did_get($city, $limit, $offset));
您只需删除limit子句并获取实际计数
public function did_get($city, $limit=0, $offset=0)
{
$this->db->select('*');
$this->db->from('table');
$this->db->where('city', $city);
$query = $this->db->get();
//set limit only if $limit and $offset are provided
if($limit && $offset) $this->db->limit($limit, $offset);
if ($query && $query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return false;
}
}
你的控制器呢
$data["results"] = $this->model_get->did_get($city);
$data['count'] = count($data["results"]);
$this->load->view("view_results",$data);
您只需删除limit子句并获取实际计数
public function did_get($city, $limit=0, $offset=0)
{
$this->db->select('*');
$this->db->from('table');
$this->db->where('city', $city);
$query = $this->db->get();
//set limit only if $limit and $offset are provided
if($limit && $offset) $this->db->limit($limit, $offset);
if ($query && $query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return false;
}
}
你的控制器呢
$data["results"] = $this->model_get->did_get($city);
$data['count'] = count($data["results"]);
$this->load->view("view_results",$data);
既然需要保留分页的limit子句,为什么不返回一个包含两个值的数组呢 你的模型 你的控制器
既然需要保留分页的limit子句,为什么不返回一个包含两个值的数组呢 你的模型 你的控制器
我想我不理解这个问题……也许我无法解释这个问题。例如,我从数据库中获得17行,并使用分页方式显示它们(每页5行)。我还想显示“已找到17行”。因此,我需要将模型中的行数17传递给视图。当我使用LIMIT选项时,它返回的行数是5而不是17。您想增加限制还是完全取消限制?啊!好啊也许你可以返回一个数组。在$arr[“rows”]中保存行数,在$arr[“result”]中保存有限的行集是,但不知道如何从一个模型返回两个数组。我想我不理解这个问题……也许我无法解释这个问题。例如,我从数据库中获得17行,并使用分页方式显示它们(每页5行)。我还想显示“已找到17行”。因此,我需要将模型中的行数17传递给视图。当我使用LIMIT选项时,它返回的行数是5而不是17。您想增加限制还是完全取消限制?啊!好啊也许你可以返回一个数组。在$arr[“行”]中保存行数,在$arr[“结果”]中保存有限的行数。是的,但不知道如何从一个模型返回两个数组。我需要限制和偏移量,因为我使用codeigniterpagination@EducateYourself那么,,我会说,只需编写一个函数,返回可用于显示的总计数。您是指模型中的2个函数吗?一个用于返回结果,另一个用于返回行数?@EducateyYourself-是的,它效率不高,但是它可以在不干扰任何现有代码的情况下执行您需要的操作。只要让
$data['count']=$this->model\u get->did\u get\u count($city)
,其中did\u get\u count()
将是同一个函数,但返回count或records,并且不会有限制或偏移。我认为可以使用一个函数。不管怎样,我将尝试使用两个函数。我需要限制和偏移,因为我使用codeigniterpagination@EducateYourself在这种情况下,我会说只需编写一个函数,返回可用于显示的总计数。您是指模型中的2个函数吗?一个用于返回结果,另一个用于返回行数?@EducateyYourself-是的,它效率不高,但是它可以在不干扰任何现有代码的情况下执行您需要的操作。只要让$data['count']=$this->model\u get->did\u get\u count($city)
,其中did\u get\u count()
将是同一个函数,但返回count或records,并且不会有限制或偏移。我认为可以使用一个函数。无论如何,我将尝试使用两个函数。它仍然显示“找到5个结果”它仍然显示“找到5个结果”这正是我需要的,但我不理解为什么它仍然显示“找到5个结果”。你能检查一下$count有什么问题吗?我不知道该怎么告诉你。表中可能只有5行吗?您是否使用了我为控制器和模型提供的所有代码?它应该工作正常。是的,表中有5行以上。我甚至尝试在我的模型中使用两个函数,但结果是一样的。请检查我更新的问题。如果您使用did\u get\u count()
作为行数,但仍然获取错误的行数,则可能是您的数据库。你能不能在你的问题中包括这一点?这正是我需要的,但我无法理解为什么它仍然显示“发现了5个结果”。你能检查一下$count有什么问题吗?我不知道该怎么告诉你。表中可能只有5行吗?您是否使用了我为控制器和模型提供的所有代码?它应该工作正常。是的,表中有5行以上。我甚至尝试在我的模型中使用两个函数,但结果是一样的。请检查我更新的问题。如果您使用did\u get\u count()
作为行数,但仍然获取错误的行数,则可能是您的数据库。你能不能在你的问题中包括这一点?