Все виснет при использовании $db->loadAssoc()

Тема в разделе "Программирование", создана пользователем DKraev, 05.09.2013.

  1. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Здравствуйте.

    Дамы и господа, помогите разобраться. Тестирую одну ерундовину.

    Пример кода:

    Код (PHP):
    1. // подключаемся к базе данных
    2.  
    3. $db = mysql_connect('localhost','joomtest','121412');
    4. mysql_select_db('joomtest',$db);  
    5. mysql_query("SET NAMES 'utf8'");
    6. mysql_query("SET CHARACTER SET 'utf8'");
    7. mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
    8.  
    9.  
    10.  
    11.  
    12. // делаем выборку из таблицы категорий
    13. $result = mysql_query ("SELECT `id`, `parent`, `name` FROM `pm05o_k2_categories`");
    14.  
    15.  
    16. $cats = array(); // тут будет наш массив с категориями каталога
    17. // в цикле формируем нужный нам массив
    18.    while($cat =  mysql_fetch_assoc($result))
    19.          $cats[$cat['parent']][] =  $cat;
    20. // далее наша главная, рекурсивная функция, которая сформирует дерево категорий
    21. function create_tree ($cats,$parent){
    22.    if(is_array($cats) and  isset($cats[$parent])){
    23.      $tree = '<ul>';
    24.      foreach($cats[$parent] as $cat){
    25.         $tree .= "<li><a href='catalog.html?catid=".$cat['id']."'>".$cat['name']."</a>";
    26.         $tree .=  create_tree ($cats,$cat['id']);
    27.         $tree .= '</li>';        
    28.      }
    29.      $tree .= '</ul>';
    30.    }
    31.    else return null;          
    32. return $tree;        
    33. }
    34.  
    35. // вызываем функцию и строим дерево
    36. echo create_tree ($cats, 79);


    Все работает корректно, получаю дерево. Все гуд. Пытаюсь перекроить все это дело под joomla:

    Код (PHP):
    1. // подключаемся к базе данных
    2.  
    3.  
    4. $db = &JFactory::getDBO();
    5. $result = "SELECT `id`, `parent`, `name` FROM `#__k2_categories`";
    6. $db->setQuery($result);
    7.  
    8.  
    9. $cats = array(); // тут будет наш массив с категориями каталога
    10.  
    11.  
    12. // в цикле формируем нужный нам массив
    13.    while($cat = $db->loadAssoc()){
    14.          $cats[$cat['parent']][] =  $cat;}
    15. // далее наша главная, рекурсивная функция, которая сформирует дерево категорий
    16. function create_tree ($cats,$parent){
    17.    if(is_array($cats) and  isset($cats[$parent])){
    18.      $tree = '<ul>';
    19.      foreach($cats[$parent] as $cat){
    20.         $tree .= "<li><a href='catalog.html?catid=".$cat['id']."'>".$cat['name']."</a>";
    21.         $tree .=  create_tree ($cats,$cat['id']);
    22.         $tree .= '</li>';        
    23.      }
    24.      $tree .= '</ul>';
    25.    }
    26.    else return null;          
    27. return $tree;        
    28. }
    29.  
    30. // вызываем функцию и строим дерево
    31. echo create_tree ($cats, 79);


    Все висит, как проклятое. Подскажите, в чем причина, пожалуйста. Явно в while($cat = $db->loadAssoc()){ , но почему не отрабатывает?
     
  2.  
  3. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской

Поделиться этой страницей

Загрузка...