我有一个MySQL表和一个HTML搜索表单。因此,根据用户请求,他可以使用该HTML表单搜索数据库。
我使用CodeIgniter,这是我用来查询数据库的模型函数
public function fetch_categories($limit, $start){
$user_info = $this->session->userdata('search_info');
$iam = $user_info['iam'];
$searching_for = $user_info['searching_for'];
$age_from = $user_info['age_from'];
$age_to = $user_info['age_to'];
$country = $user_info['country'];
$Province = $user_info['Province'];
$this->db->where('sex !=', $iam);
$this->db->where('sex', $searching_for);
$this->db->where('Age >=' , $age_from);
$this->db->where('Age <=' , $age_to);
if($Province != 1){
$this->db->where('Province' , $Province);
}
$this->db->limit($limit, $start);
$query = $this->db->get("members");
return $query->result_array();
}
这是正常的,但我需要为结果添加分页,所以我再次使用CodeIgniter的内置分页库。
所以我想在fetch_categories()函数执行之前计算结果,所以我使用search_count()
函数。
public function search(){
$user_info = $this->session->userdata('search_info');
$iam = $user_info['iam'];
$searching_for = $user_info['searching_for'];
$age_from = $user_info['age_from'];
$age_to = $user_info['age_to'];
$country = $user_info['country'];
$Province = $user_info['Province'];
$this->db->where('sex !=', $iam);
$this->db->where('sex', $searching_for);
$this->db->where('Age >=' , $age_from);
$this->db->where('Age <=' , $age_to);
if($Province != 1){
$this->db->where('Province' , $Province);
}
$query = $this->db->count_all('members');
return $query;
}
但是这个东西总是会返回整行数。所以页面中有不需要的页码。我知道这是因为这件事。
$query = $this->db->count_all('members');
但我不知道如何使用这种类型的函数来计算相关的东西。
答案 0 :(得分:1)
嗨,如果你想使用带有活动记录数的where子句,那么使用这个方法count_all_results()
$this->db->where('sex !=', $iam);
$this->db->where('sex', $searching_for);
$this->db->where('Age >=' , $age_from);
$this->db->where('Age <=' , $age_to);
if($Province != 1){
$this->db->where('Province' , $Province);
}
$this->db->count_all_results()
答案 1 :(得分:0)
试试这个方法:
$this->db->where('sex !=', $iam);
$this->db->where('sex', $searching_for);
$this->db->where('Age >=' , $age_from);
$this->db->where('Age <=' , $age_to);
if($Province != 1)
{
$this->db->where('Province' , $Province);
}
$this->db->from('members');
$query = $this->db->get();
if($query)
{
return $query->num_rows();
}
else
{
return FALSE;
}