在我的项目中,有一个实例,我必须实现一个Switch机制,其中应用程序将在SQL Query上的2个选项之间切换。两个选项基于时间和投票数。
你能设置一种排序状态来解决这种情况(比如在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 :(得分: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。
这是否实现了您的目标?希望它有所帮助。