2017-03-25 3 views
0

PHP Codeigniterに関する私のプロジェクトにはたくさんのページがあります。 header.phpにはheader.phpというページが1つあります。私はmysqlのクエリでカテゴリを取得する必要があります...どのようにすべてのページでこれを行うことができますか? 各ページの各header.phpに対してmysqlクエリを実行する必要があります。カテゴリに対して一度クエリを実行します。 助けてくれてありがとうcodeigniterのsingle page header.phpにクエリ結果を表示するには?

答えて

0

HTTPリクエストごとにDBに問い合わせる必要がない場合は、最初のリクエストのクエリ結果をセッション変数またはローカルストレージ変数に格納します。あなたは、私が存在すべきであり、すべてのコントローラは、そのクラスを拡張する必要がありますMY_Controllerクラスを述べ見ることができるようにMY_Controller擬似コードは、あなたはすなわちheader.php ビューファイルでループ$this->session->userdata('header_catogories')このセッションのアプローチでは

if (! $this->session->userdata('header_categories') { 
    $header_categories = $this->Category_m->get_all(); 
    $this->session->set_userdata('header_categories', $header_categories); 
} 
// otherwise data is already there and no need for DB query 

のようなものができただろう。このコード部分をMY_Controllerのコンストラクタで設定する必要があります。

+0

あなたの答えに感謝します..しかし、私は不足している情報を与えたと思います。私はheader.phpにメニューを持っています。私はこのメニューに商品カテゴリを持っています...データベースからこのメニューカテゴリを引き出す必要があります。それはセッションのユーザーデータに保管するのが正しいでしょうか? – hakan

+0

私は[しなかった](https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)のコードを参照してください。そのメニューは公開されていますか?ユーザーごとに異なるのですか?私が知っている第2の方法(セッションの横)は、ローカルストレージを使用しています。 – Tpojka

関連する問題