Показывать дочерние записи под родителем в php codeigniter - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть 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 
    }
}
?>

1 Ответ

0 голосов
/ 08 ноября 2018

В терминах запроса 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...