php按2个参数排序


php order by 2 parameters

我需要按如下顺序排列列表;

  • 首先,特色商店(特色商店在"order_no"中的值>1)应根据order_no值进行排序
  • 在特色商店之后,常规商店("order_no"=1)应按"title"(字母顺序)升序排列

以下是代码的某些部分;

const DEFAULT_ORDER_COLUMN = "title";
const DEFAULT_ORDER_BY = "asc";
public function category() {
    $orderColumn = isset( $_GET['column'] ) && in_array($_GET['column'], $this->orderColum) ? $_GET['column'] : self::DEFAULT_ORDER_COLUMN;
    $orderBy = isset( $_GET['order'] ) && in_array($_GET['order'], $this->orderBy) ? $_GET['order'] : self::DEFAULT_ORDER_BY;
    $params['total'] = $search->rowCount();
    $params['result'] = $search->fetchAll();
    template::add_content(template::load('homepage/category', $params));
}

我试图用这个代码来解决这个问题

if ( isset( $_GET['order_no'] ) ) != 1 {
const DEFAULT_ORDER_COLUMN = "order";
const DEFAULT_ORDER_BY = "desc";
} else {
const DEFAULT_ORDER_COLUMN = "title";
const DEFAULT_ORDER_BY = "asc";
}

但没有起作用。解决方案是什么?

根据您的条件,您需要以下订单子句:

ORDER BY `order_no` DESC, `title`

然而,从您的代码中,还不清楚您是如何构建sql的,以及$_GET变量与您的问题有何关联。