2014-11-07 3 views
0

Мне нужно заказать список следующим образом:php order by 2 parameters

  • Первых магазины, которые фигурируют (Рекомендуемые магазины имеют значение> 1 в «order_no») должны быть упорядочены в соответствии с order_no значений
  • После признаков магазинов, обычные магазины («order_no» = 1) должно быть заказывается по возрастанию по названию (название) (в алфавитном порядке)

Ниже представлена ​​какая-то часть кода;

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

, но не работает. Каким будет решение?

+0

Вы используете какой-то каркас? –

+0

Вам нужно показать sql, как вы можете это сделать. И '$ search' не определен в вашей функции. – jeroen

ответ

0

на основе ваших критериев, вам потребуется пункт следующего порядка:

ORDER BY `order_no` DESC, `title` 

Однако из вашего кода это не ясно, как вы строите свой SQL и как $_GET переменных, связанные с вашим вопросом.