2013-06-03 2 views
1

Я использую codeigniter Я хочу показать некоторые данные, взятые из базы данных, запросив следующим образом.codeigniter session не работает

$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 обеспечивается пользователем, и я передаю их conttroller файл, используя массив сеанса.

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

Но дело в том, когда я нажимаю номера страниц это не показать любую вещь, я пытался комментировать все где ключи в запросе, а затем он работает.
Итак, я думаю, что ошибка в сеансовом массиве, и я попытался установить var_dump session_all, а затем он показывает array(0){}

Может ли кто-нибудь мне помочь в этом случае?

+1

что делает 'var_dump ($ this-> session-> all_userdata()) 'output? Это пусто? –

+0

Сначала он показывает это массив (6) {["iam"] => string (1) "m" ["search_for"] => string (1) "w" ["age_from"] => string (2) "20" ["age_to"] => строка (2) "37" ["country"] => строка (2) "lk" ["Province"] => строка (1) "1"}} но я нажимаю на страницу, а затем показывает false массив (6) {["iam"] => bool (false) ["search_for"] => bool (false) ["age_from"] => bool (false) ["age_to"] => bool (false) ["country"] => bool (false) ["Province"] => bool (false)}} – Yasitha

+1

Сессия устанавливается впервые, но при навигации на какую-либо другую страницу или на одну страницу, сеанс уничтожается. правильно? –

ответ

1

Используйте этот код:

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

код, чтобы установить сеанс

1

Я думаю, что вы обращаетесь к сеансовому массиву неправильно.

Вместо

$iam 

использование

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

Или

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

Какой бы работает в вашем случае ....

1

Установить данные сеанса этим кодом:

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

Retrive этой сессии данные по этому коду:

$this->session->userdata("sess_data"); 
+0

«Ваш», а не «ур». Общение с чатом специально запрещено здесь. – meagar

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

затем я перенаправляю его на функцию разбивки на страницы. то он работает аккуратно. прежде чем он переписывал элементы сообщения и массив сеансов, когда я перемещаюсь к страницам. теперь из-за перенаправления он был остановлен. как я думаю. так или иначе он работает сейчас очень хорошо , чем вы каждый, кто помогает мне. специально г-н Джон Блейк очень благодарен вам.

1

проверить, если у вас есть загрузить сессию library.If не либо нагрузки в контроллере, как

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

или вы можете автоматической загрузки сеанса в библиотеке конфигурации/autoload.php