使用order_by&和10选择10个随机结果。限制CodeIgniter?

时间:2017-01-30 00:44:38

标签: php mysql codeigniter

我有一张包含500个结果的表格。

我需要玩家选择DESC选项,然后限制10个结果,并使用CodeIgniter选择10个结果中的5个结果。

我有什么:

public function getServers(){
    $this->db2->from('server');
    $this->db2->order_by("players", "desc");
    $this->db2->limit(5);

    $query  = $this->db2->get();

    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
    return false;
}

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你想在你的数据库中选择10个顶级结果,按列顺序按降序排序,然后随机选择其中的5个?

只需将代码的一行更改为:

 $this->db2->limit(10);

然后调用方法如:

$my_random_five = array_rand($this->getServers(), 5);

然后还考虑使用http://php.net/manual/en/function.mt-rand.php

答案 1 :(得分:0)

您的代码应如上面的标记

所示
            $my_random_five = array_rand($this->getServers(), 5);
            public function getServers(){
                $this->db2->from('server');
                $this->db2->order_by("players", "desc");
                $this->db2->limit(10);
                $query  = $this->db2->get();
                if ($query->num_rows() > 0) {
                    foreach ($query->result() as $row) {
                        $data[] = $row;
                    }
                    return $data;
                }
                return false;
            }