2016-12-03 22 views
0

私のプロジェクトでは、アプリケーションがSQLクエリで2つのオプションを切り替えるスイッチメカニズムを実装する必要があるインスタンスがあります。 2つのオプションは、時間と投票数に基づいています。CodeIgniterの状態を設定する

状況に対処するためにソートの状態を設定することができますか(リアクションのように)、このような状況にどのように対処しますか?

デフォルトでは、アプリケーションは投票数でレコードを照会します。

function getPosts($limit, $offset) { 
     if ($offset > 0) { 
      $offset = ($offset - 1) * $limit; 
     } 
     //$selectedQuery = 'SELECT * FROM posts ORDER BY timestamp ASC LIMIT ' . $limit . ' OFFSET ' . $offset; 
     $selectedQuery = 'SELECT * FROM posts ORDER BY upvotes DESC LIMIT ' . $limit . ' OFFSET ' . $offset; 
     $result['rows'] = $this->db->query($selectedQuery); 
     $result['num_rows'] = $this->db->count_all_results($this->posts); 
     return $result; 
} 

私はselectedQueryを切り替えたいです。これにどのように取り組んでいますか?ありがとうございました。

+0

getPosts関数の呼び出しごとに1つしか実行されないように、これらのクエリのいずれかを実行することを意味しますか? – TimBrownlaw

+0

@TimBrownlawそうですね、私は2つのボタンをビューに入れ替えました。しかし、2つのSQLステートメントを切り替える方法を国家のように設定する方法を理解することはできません。 –

答えて

0

これは設定項目で実現します。しかし、投票数の単純なチェックが、適用するSQL文を決定するのに役立たない理由はわかりません。

設定項目を使用する場合は、自分の設定ファイルにデフォルトの設定項目値を設定し、別の値に「切り替え」たい場合に設定します。

また、デフォルトの設定ファイルに設定値を追加することもできます。あなたの設定ファイルは、autoload.phpでも必要に応じてオートロードすることができます。

それはすべてが順調にここでのドキュメントに記述されています

負荷設定ファイル

$this->config->load('sql_select_switch'); 

読むコンフィグ設定

$this->config->item('selected_query'); 

セットコンフィグ設定:

しかし要約でhttp://www.codeigniter.com/user_guide/libraries/config.html#config-class

$this->config->set_item('selected_query', 'item_value'); 

あなたのアプリケーションのどこからでも設定を読んで読み込むことができます。デフォルトと代替設定の2つの設定しかない場合は、値をTRUEまたはFALSEに設定することができます。

お探しのものがありますか?それが役に立てば幸い。

関連する問題