Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: каталоги ::: рекурсия
 
 автор: sl1p   (05.01.2010 в 16:11)   письмо автору
 
 

<?
function getCatTree($id_parent 0$bool_active false) {
    
$id_parent intval($id_parent);
    
$cats = array();
    
$bool_active $bool_active" AND `active` = 1 " "";
    
$res mysql_query("SELECT `id`, `abbr` FROM `cats` WHERE `id_parent` = {$id_parent} {$bool_active} ORDER BY `position`");
    if(
check_result($res)) {
        while(
$r mysql_fetch_assoc($res)) {
            
$cats[$r['abbr']] = getCatTree($r['id'], $bool_active);
        }
    } else {
        return array();
    }
    return 
$cats;
}


Можно ли както програмно заменить запросы к базе?
Тоесть один раз взять всё из таблицы `cats` а потом уже продолжать действия..
Ибо эта функция у меня грузит очень сильно и выдаёт иногда ошибки о max exec time

да и вообще так дёргать базу думаю осквернительно:)

  Ответить  
 
 автор: Fractured#   (05.01.2010 в 19:23)   письмо автору
 
   для: sl1p   (05.01.2010 в 16:11)
 

Посмотри другие способы хранения деревьев в БД.

А в твоём случае с помощью IN можно сократить количество запросов.

  Ответить  
 
 автор: sl1p   (08.01.2010 в 09:54)   письмо автору
 
   для: Fractured#   (05.01.2010 в 19:23)
 

Ну а вообще, мой вариант, достаточно "наглая" нагрузка на бд?
Считая каждого пользователя одновременно и т.д.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования