2016-12-03 76 views
0

在我的項目中,有一個實例必須實現Switch機制,其中應用程序將在SQL Query上的2個選項之間切換。兩個選項基於時間和票數。在CodeIgniter中設置狀態

你可以設置一個狀態來處理這種情況(比如在React中)或者你如何處理這種情況。

現在默認情況下應用程序通過票數查詢記錄。

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函數時只執行一個查詢? – TimBrownlaw

+0

@TimBrownlaw是的,我在視圖中設置了2個按鈕來切換。但我無法弄清楚如何設置一種狀態來切換這兩個SQL語句。 –

回答

0

我會實現這與配置項目。然而,我不確定爲什麼簡單檢查投票計數並不能幫助您決定應用哪個SQL語句。

對於使用配置項目,您可以在您自己的配置文件中設置您的默認配置項目值,當您想要它切換到另一個值時設置它。

或者,您可以將您的配置值添加到默認配置文件。如果您需要,您的配置文件也可以在autoload.php中自動加載。

它是一切都在這裏的文檔描述:http://www.codeigniter.com/user_guide/libraries/config.html#config-class

但總結:

加載配置文件

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

讀取配置設置

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

設置配置設置

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

您可以在應用程序的任何位置設置和讀取設置。如果您只有兩個設置,默認和替代設置,則可以將該值設置爲TRUE或FALSE。

這是否實現您正在尋找的?希望能幫助到你。