按数字结尾或分数codeigniter对结果进行排序

时间:2018-02-01 04:39:58

标签: codeigniter sorting

在我的控制器和模型功能上,我正在尝试对得分进行排序

  

问题:在模型功能的下面的foreach中,我如何显示它,就像分数相同然后根据他们玩了多少结束来分类

目前只按分数对其进行排序。

当前输出

(
    [0] => Array
        (
            [skip] => A
            [second] => B
            [lead] => C
            [score] => 65
            [ends] => 41
        )

    [1] => Array
        (
            [skip] => D
            [second] => E
            [lead] => F
            [score] => 65
            [ends] => 42
        )

    [2] => Array
        (
            [skip] => G
            [second] => H
            [lead] => I
            [score] => 52
            [ends] => 38
        )

)

enter image description here

模型功能

public function getTriplesResults($event_id) {
    $data = array();

    $this->db->where('event_id', $event_id);
    $this->db->order_by('score', 'desc');
    $query = $this->db->get('triples');

    foreach ($query->result_array() as $result) {

        $data[] = array(
            'skip' => $result['skip'],
            'second' => $result['second'],
            'lead' => $result['lead'],
            'score' => $result['score'],
            'ends' => $result['ends']
        );
    }

    return $data;
}

控制器

<?php

class Results extends MX_Controller {

    public function __construct() {
        parent::__construct();

        //$this->load->model('catalog/tournament/event_model');
    }

    public function triples($event_id = "") {

        echo "<pre>";
        print_r($this->getTriplesResults($event_id));
        echo "</pre>";
    }

    public function getTriplesResults($event_id) {
        $data = array();

        $this->db->where('event_id', $event_id);
        $this->db->order_by('score', 'asc');
        $query = $this->db->get('triples');

        foreach ($query->result_array() as $result) {

            $data[] = array(
                'skip' => $result['skip'],
                'second' => $result['second'],
                'lead' => $result['lead'],
                'score' => $result['score'],
                'ends' => $result['ends']
            );
        }

        return $data;
    }
}

1 个答案:

答案 0 :(得分:3)

您可以将查询调整为按两列排序:

$this->db->order_by('score desc, ends desc');

OR

$this->db->order_by("score", "desc");
$this->db->order_by("ends", "desc"); 

更多信息: Codeigniter - Ordering active record alphabetically