Рекурсивная выборка с бд

Печать RSS
220

В
Автор
Пацак
0
9. какраз етот способ пришол утром))..
буду работать...
П

Пацак
0
10. Кевин Митник_HHTeam, зато быстрее.
В
Автор
Пацак
0
    public function loadSections ($uid = 0, $step = 0) 
    {
        $uid = (int)abs($uid);
        
        $q = "SELECT * FROM i_sec WHERE uid='".$uid."'";

        echo str_repeat('-',$step);
        foreach ($this->db->query($q) as $sec ){
            
            $count = $this->db->query("SELECT COUNT(*) FROM i_sec WHERE uid='".$uid."'")->fetch();
            echo $sec['name'].'<br/>';
            if ($count[0]){

                $this->loadSections($sec['id'],$step+1);
                
            } else {
                $this->loadSections($sec['id'],$step-1);
            } 
            
            
        }
   
        
    }
родил что то такое - но на каком то вхождению начинает некоректо работать, м.б есть у кого желание моз потренировать?)
В
Автор
Пацак
0
все хорошо - просто не те параметры передавал в запрос
    public function loadSections ($uid = 0, $step = 0) 
    {
        $uid = (int)abs($uid);
        
        $q = "SELECT * FROM i_sec WHERE uid='".$uid."'";

        
        foreach ($this->db->query($q) as $sec ){
            $count = $this->db->query("SELECT COUNT(*) FROM i_sec WHERE uid='".$sec['id']."'")->fetch();
            
            echo str_repeat('-',$step);
            echo $sec['name'].'<br/>';
            if ($count[0]){

                $this->loadSections($sec['id'],$step+1);
                
            } else {
                $this->loadSections($sec['id'],$step-1);
            } 
            
            
        }
   
        
    } 

будут предложения по усовершенствованию кода?

Добавлено через 03:28 сек.
нужно ли кешовать если будет ~30записей?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск