我需要按如下顺序排列列表;
- 首先,特色商店(特色商店在"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
变量与您的问题有何关联。