我有一个Tbl,其中包含以下字段。我只能显示第一级并显示正常。但是我想在各自的父级下获取每个父级显示的子级详细信息。请在“高级”中帮助我。
id pid name
1 0 proc
2 0 prod
3 0 dash
4 3 dash-prod
function get_all_access_list(){
$db = $this->connect_db();
$output =array();
$db->select('access_module_id,access_parent_module,access_module_name');
$db->from('access_permissions');
$db->where('access_parent_module =',0);
$query = $db->get();
if( $query->num_rows() > 0 ){
$output = $query->result();
}
return $output;
}
<?php
if( !empty($access_list) ){
foreach( $access_list AS $acces_name ){ ?>
<input type="checkbox" name="access_name[]" id="acces_name" value="<?php echo $acces_name->access_module_id; ?>">
<span class="label-text fa-lg"><?php echo $acces_name->access_module_name;?></span>
<?php
}
}
?>
答案 0 :(得分:0)
就MySQL查询而言,我们可以定义一个自定义的排序参数。如果pid
的值为0,我们可以简单地使用id
的值进行排序;否则为pid
值。这是因为其他级别的pid
值与父级别的id
相同。
我们还将使用多级Order By
,第二级排序使用id
。
您可以执行以下操作:
SELECT
t.id,
t.name
FROM
your_table AS t
ORDER BY
CASE WHEN t.pid = 0 THEN t.id
ELSE t.pid
END
, t.id