PHP / MySQL — синтаксис для сортировки результатов массива?

Использование собственного шаблона (журнал 2) для системы электронной коммерции на основе PHP.
На панели управления есть раздел, который загружает пользовательские модули.
Проблема в том, что модули представлены в порядке их создания, что затрудняет поиск нужного модуля.
Я хотел бы отсортировать их в алфавитном порядке.

Как & где я могу добавить функцию сортировки по имени к этой функции?

public function all() {
if (isset($this->get_data['module_type'])) {
$module_type = $this->db->escape('journal2_' . $this->get_data['module_type']);
$query = $this->db->query('SELECT * FROM ' . DB_PREFIX . 'journal2_modules WHERE module_type = "' . $module_type . '"');
} else {
$query = $this->db->query('SELECT * FROM ' . DB_PREFIX . 'journal2_modules');
}

foreach ($query->rows as &$row) {
$row['module_data'] = json_decode($row['module_data'], true);
if (is_array($row['module_data'])) {
foreach($row['module_data'] as $key => &$value) {
if (!in_array($key, array('module_name', 'module_type'))) {
unset($row['module_data'][$key]);
}
}
}
}

return $query->rows;
}

Заранее спасибо!

0

Решение

В запросах вставьте в конце «ORDER BY fieldName», чтобы отсортировать по этому.

0

Другие решения

Если вам нужен конкретный заказ, в SQL вы можете использовать заказ по предложению. В вашем случае может быть полезен заказ по module_name

  $query = $this->db->query('SELECT * FROM ' . DB_PREFIX .
'journal2_modules WHERE module_type = "' .
$module_type . '"  order by module_name ');
0

Попробуйте изменить свой запрос:

if (isset($this->get_data['module_type'])) {
$module_type = $this->db->escape('journal2_' . $this->get_data['module_type']);
$query = $this->db->query('SELECT * FROM ' . DB_PREFIX . 'journal2_modules WHERE module_type = "' . $module_type . '" ORDER BY module_data ASC');
} else {
$query = $this->db->query('SELECT * FROM ' . DB_PREFIX . 'journal2_modules ORDER BY module_data ASC');
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector