|
|
|
|
<?
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
да и вообще так дёргать базу думаю осквернительно:) | |
|
|
|
|
|
|
|
для: sl1p
(05.01.2010 в 16:11)
| | Посмотри другие способы хранения деревьев в БД.
А в твоём случае с помощью IN можно сократить количество запросов. | |
|
|
|
|
|
|
|
для: Fractured#
(05.01.2010 в 19:23)
| | Ну а вообще, мой вариант, достаточно "наглая" нагрузка на бд?
Считая каждого пользователя одновременно и т.д. | |
|
|
|