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

しかし、ページ番号をクリックしても何も表示されませんでした。クエリ内のすべての場所の手がかりにコメントを付けてみたところ、機能しました。
だから私はエラーがセッション配列にあると思うし、私var_dumpはsession_allにしようとしたので、それが表示されますarray(0){}

この場合、誰でも私を助けることができますか?

4

5 に答える 5

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 に答える
1

セッション配列に間違った方法でアクセスしていると思います。

それ以外の

$iam 

使用する

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

または

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

あなたのケースでどちらがうまくいくか....

于 2013-06-03T04:55:17.910 に答える
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 に答える