为基于PHP的电子商务系统使用自定义模板(Journal 2)。 在控制面板中,有一个加载自定义模块的部分。 问题是,模块按创建顺序呈现,这使得很难找到正确的模块。 我想按照按字母顺序对它们进行排序。
如何&我在哪里可以为此功能添加按名称排序功能?
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 :(得分:0)
在查询中插入“ORDER BY fieldName”结尾以进行排序。
答案 1 :(得分: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');
}
答案 2 :(得分:0)
如果您需要特定订单,可以在sql中使用order by子句。在您的情况下,module_name
可能是有用的顺序 $query = $this->db->query('SELECT * FROM ' . DB_PREFIX .
'journal2_modules WHERE module_type = "' .
$module_type . '" order by module_name ');