Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как кэшировать результат запроса?

Как кэшировать результат запроса?


     24.11.2016    Все вопросы » Общие вопросы по PHP    428

вопрос
Всем привет.
У меня в каждой категории идет подсчет новостей из этой самой категории, затем, результат кэшируется.
Проблема в том, что на каждую категорию, создается собственный файл с кешем, в котором указанно сколько новостей находится в данной категории.

Вот собственно сам код:

$count_all = dle_cache('count_cat',$get_cats);
if(!$count_all){
	$count_all = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_category}" . $where_date);
	$count_all = $count_all['count'];
	create_cache('count_cat',$count_all,$get_cats);
}


Хотелось бы сделать, чтобы все результаты записывались в один файл, но не понимаю, как лучше это организовать?

Ответа пока нет


3 комментария

ndtvdx
Юзер

ndtvdx - 24 ноября 2016 21:54 -

Пишите массив, а его уже записывайте в кэш:

$cache = array('{category_id}' => '{count_all}', ...);

bestazzz
Юзер

bestazzz - 25 ноября 2016 09:13 -

ndtvdx,
Не подскажите регулярку, которой можно выдернуть кол-во новостей из кеша?
Теперь кеш с количеством новостей у каждой категории, имеет такой шаблон:
1|10
2|5
...
0|15
Где 1 и 2 это айди категорий, 10 и 5 - кол-во новостей в данных категориях.
А 0 это главная страница, 15 - общее кол-во новостей в каждой категории.

MSK
Юзер

MSK - 25 ноября 2016 15:44 -

Зачем регулярка? Вам предложили кешировать массив.
Если своим путем идете, разобрать строку с разделителями можете так: http://www.php.su/explode()

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх