用户定义的变量在Mysql Code Igniter中不起作用

时间:2018-01-04 10:24:22

标签: php mysql codeigniter

我正在尝试根据类别名称分区更新的时间对行进行排名。

$query = "SELECT 
   category_name, 
   topic_title, 
   updated_ts,
   @topic_rank := IF(@current_category = category_name, @topic_rank + 1, 1) AS topic_rank,
   @current_category := category_name AS current_category
FROM topic_master
ORDER BY category_name, updated_ts DESC
                ";
$data = $this->db->query($query);
if($this->db->affected_rows() > 0)
    {
        return $data;
    }
    else
    {
        return false;
    }

这个查询在MySQL中运行得非常好,并且我将topic_rank作为1,2,3等等。 当我在CodeIgniter中运行它时,我将topic_rank作为所有记录的1。

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

尝试使用codeigniger数据库方法result_array()

$q = $this->db->query($query);
$data = $q->result_array();

答案 1 :(得分:0)

找到解决此问题的替代方法。不知道为什么用户定义的变量不起作用。

// Load Google Charts for the Portuguese locale.
google.charts.load('current', {'packages':['corechart'], 'language': 'pt'});