Помогите с функцией в цикле!

Тема в разделе "PHP", создана пользователем NetStranger, 19 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. NetStranger

    NetStranger Постоялец

    Регистр.:
    16 сен 2008
    Сообщения:
    124
    Симпатии:
    1
    Код:
    function get($parent){
     $CI =& get_instance();
     $CI->load->database();
     $result = $CI->db->query("SELECT menu_parent FROM menu WHERE id = '$parent'");
         if ($result->num_rows() > 0) {
           $key = $CI->db->query("SELECT controller FROM menu WHERE id = '$parent'")->row()->controller;
            $par = $result->row()->menu_parent;
         get($par);
                                      }
    }
    $keys = get($parent);
    Помогите пожалуйста, уже не первый раз встречаюсь с проблемой, не могу в данном цикле собрать результаты цикла в одну переменную.
    За каждый цикл, переменная key получает определенное значение , глубина цикла до 3 уровня. Как мне сделать чтобы все результаты данной функции занеслись в переменную keys ? мне нужно чтобы там были данные в виде " key1, key2, key3 " , где key1, key2, key3 соответвенно результаты запросов в БД внутри цикла внутри функции get ! Очень нужно! не могу сообразить =(
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    ваша функция вобще не возвращает никаких значений.
    PHP:
    function get($parent){
        
    $CI =& get_instance();
        
    $CI->load->database();
        
    $result $CI->db->query("SELECT menu_parent FROM menu WHERE id = '$parent'");
        
    $key "";
        if (
    $result->num_rows() > 0) {
            
    $key $CI->db->query("SELECT controller FROM menu WHERE id = '$parent'")->row()->controller;
            
    $par $result->row()->menu_parent;
            
    $key .= "," get($par);
        }
        return 
    $key;
    }
    $keys get($parent);
     
    NetStranger нравится это.
  3. NetStranger

    NetStranger Постоялец

    Регистр.:
    16 сен 2008
    Сообщения:
    124
    Симпатии:
    1
    ох здоровья тебе мил человек))) заработало!

    ps я может и сам догадаюсь но если в голову быстрее прийдет кому то то мне нужно чтобы они в обратном порядке собирались
    key3, key2, key1
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Собирать данные в массив

    PHP:
    $key = array();
    ...
    $key[] = get($par);

    //затем делаем реверс массива
    $key array_reverse($key);
    return 
    implode(', '$key);
     
  5. _axl

    _axl Постоялец

    Регистр.:
    24 сен 2008
    Сообщения:
    50
    Симпатии:
    8
    PHP:
    function get($parent){
        
    $CI =& get_instance();
        
    $CI->load->database();
        
    $result $CI->db->query("SELECT menu_parent FROM menu WHERE id = '$parent'");
        
    $key = array();
        if (
    $result->num_rows() > 0) {
            
    $key $CI->db->query("SELECT controller FROM menu WHERE id = '$parent'")->row()->controller;
            
    $par $result->row()->menu_parent;
            
    $keys[] = get($par);
        }
        return 
    $keys;
    }
    $keys array_reverseget($parent) ); 
    $keys implode(','$keys);    
     
  6. NetStranger

    NetStranger Постоялец

    Регистр.:
    16 сен 2008
    Сообщения:
    124
    Симпатии:
    1
    спасибо всем, с массивами я чо то не осилил, сделал тупо
    Код:
    $keys = get($val['parent']);
    $array = explode(',',$keys);
    $array = array_reverse($array);
    $keys = implode(',',$array);
     
  7. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    так опишите, какие проблемы возникли?
     
Статус темы:
Закрыта.