1

我正在使用 codeigniter 我想通过如下查询来显示从数据库中获取的一些数据。

$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();

$iam,$searching_for, $age, $age_to用户提供,我使用会话数组从控制器文件传递它们。

    $search_info=array(
    'iam'           =>  $this->input->post('iam'),
    'searching_for' =>  $this->input->post('searching_for'),
    'age_from'      =>  $this->input->post('age_from'),
    'age_to'        =>  $this->input->post('age_to'),
    'country'       =>  $this->input->post('country'),
    'Province'      =>  $this->input->post('Province')
);

$this->session->set_userdata(array("search_info" => $search_info));

我的分页功能也在控制器文件中,就像这样

public function pagination(){
        $this->load->library("pagination");
        $config = array();
    $config["base_url"] = base_url() . "controller_search/index";

    $this->load->model('models_search');
    $config["total_rows"] = $this->models_search->search();

    $config["per_page"] = 1;
    $config["uri_segment"] = 3;
    $this->pagination->initialize($config);
    //$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;3
    //echo $this->uri->segment(3);
    //echo ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;3;
    $page = $this->uri->segment(3);
    $data["search_result"] = $this->models_search->fetch_categories($config["per_page"], $page);
    $data["links"] = $this->pagination->create_links();
    $data['error'] = '';
    $this->load->view('home_header.php');
    $this->load->view('search/search_result',$data);
}

但问题是,当我单击页码时它没有显示任何内容,我尝试评论查询中的所有 where 线索,然后它就可以工作了。
所以我认为错误在会话数组中,我尝试var_dump了 session_all 所以它显示array(0){}

在这种情况下谁能帮助我?

4

5 回答 5

1

我认为您以错误的方式访问会话数组。

代替

$iam 

采用

$this->session->userdata('iam');

或者

$this->session->userdata('$iam');

无论哪种方式适用于您的情况....

于 2013-06-03T04:55:17.910 回答
1

使用此代码:

$this->session->set_userdata("search_info" => $search_info);

设置会话的代码

于 2013-06-03T07:13:45.663 回答
1

通过以下代码设置您的会话数据:

$this->session->set_userdata("sess_data", "mydata");

通过以下代码检索此会话数据:

$this->session->userdata("sess_data");
于 2013-06-03T12:01:04.593 回答
0

我只是将所有发布的值放入索引函数中的变量,然后将它们放入会话数组中

 $search_info=array(
            'iam'           =>  $iam,
            'searching_for' =>  $searching_for,
            'age_from'      =>  $age_from,
            'age_to'        =>  $age_to,
            'country'       =>  $country,
            'Province'      =>  $Province
        );

       $this->session->set_userdata(array("search_info" => $search_info)); 

然后我将它重定向到分页功能。然后它工作得很好。在我移向页面时覆盖帖子项目和会话数组之前。现在由于重定向它被停止了。正如我所想。无论如何,它现在工作得很好,比你们每个人都帮助我。特别是约翰布莱克先生,非常感谢您,先生。

于 2013-06-04T06:33:51.173 回答
0

检查您是否已加载会话库。如果没有加载到您的控制器中

$this->load->library('session')

或者您可以在 config/autoload.php 库中自动加载会话

于 2015-07-26T07:18:21.623 回答