2

有来自 MySQL 的记录PHP array填充:sortedtable

   function recupererDroitCreateur($user_id, $isAdmin = null) {
        $ret    = array() ; // this will be the returned array

        // Requête de sélection de tous les menus
        $sSQL = "SELECT m.menu_code, m.menu_lib, m.menu_action, m.menu_titre, cm.class_menu_lib, cm.class_menu_code
                     FROM menu m
                     LEFT JOIN classe_menu cm
                     ON m.class_menu_code = cm.class_menu_code
                     WHERE m.menu_deleted = 0 AND m.menu_visible = 1
                     ORDER BY cm.class_menu_lib, m.menu_titre";
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows();
        $i = 0;
        while ( $this->db->next_record() ) {
            $ret[$i]["menu_code"]   = $this->db->f('menu_code');
            $ret[$i]["menu_lib"]    = stripslashes($this->db->f('menu_lib'));
            $ret[$i]["menu_action"] = stripslashes($this->db->f('menu_action'));
            $ret[$i]["menu_titre"]  = stripslashes($this->db->f('menu_titre'));
            $ret[$i]["class_menu_lib"]  = stripslashes($this->db->f('class_menu_lib'));
            $ret[$i]["class_menu_code"]     = stripslashes($this->db->f('class_menu_code'));
            $i++;
        }

        return ($ret);
    }

“cm.class_menu_lib”列中有null值,它是查询的排序列。因此,当在 html 表中显示数组的内容时,首先显示空记录!如何最后显示空记录?

4

1 回答 1

4
SELECT m.menu_code, m.menu_lib, m.menu_action, m.menu_titre, cm.class_menu_lib, cm.class_menu_code
FROM menu m
LEFT JOIN classe_menu cm
ON m.class_menu_code = cm.class_menu_code
WHERE m.menu_deleted = 0 AND m.menu_visible = 1
ORDER BY cm.class_menu_lib IS NULL, cm.class_menu_lib, m.menu_titre

基本上NOT NULL < NULL,因此您将其添加为第一个排序键。

实际操作:http ://www.sqlfiddle.com/#!2/226a4/1

于 2012-05-21T09:32:16.227 回答