2017-02-20 9 views
0

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

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

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

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

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

Сделайте или не делайте. Нет «попытки». *** Хороший ответ *** всегда будет объяснять, что было сделано и почему это было сделано таким образом, не только для OP, но и для будущих посетителей SO. –

+0

Вы раскалываете волосы. Я не думаю, что использование общепринятого английского языка, такого как «Try this ...», каким-либо образом уменьшает хороший ответ, если предоставленный код действительно работает для OP. Качество для будущих посетителей может определяться соответствующими upvotes или OP, принимающими ответ. – HomerPlata

+1

Возможно, я раскалываю волосы, но вы все еще не объяснили OP (или будущим посетителям), какие изменения вы внесли, почему вы их создали и почему они должны работать. У меня нет проблем с ответом «Попробуйте это ...», где объясняется объяснение. ¯ \\ _ (ツ) _/¯ –

0

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

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

@JayBlanchard спасибо .. ответ обновлен с объяснением - – scaisEdge

Смежные вопросы