簡體   English   中英

使用order_by和limit CodeIgniter在10個結果中選擇5個隨機結果?

[英]Select 5 random results in 10 with order_by & limit CodeIgniter?

我有一張有500個結果的表。

我需要按帶DESC選項的Players進行訂購,然后限制10個結果,並選擇10個具有CodeIgniter的結果。

我有的:

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;
}

如果我對您的理解正確,您想選擇數據庫中排名前10位的結果,按列播放器的降序排列,然后隨機選擇其中5個?

只需將代碼的一行更改為:

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

然后調用如下方法:

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

然后還要考慮使用http://php.net/manual/en/function.mt-rand.php

您的代碼應類似於上面標記所建議的內容

            $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;
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM