Mek 99 Опубликовано: 18 марта 2016 Рассказать Опубликовано: 18 марта 2016 (изменено) Кто знает php, посоветуйте, как лучше реализовать вывод количества новостей в категориях? Сейчас у меня это реализовано следующим способом, под каждую категорию создан отдельный файл php с кодом: <?php $sql_result = $db->query("select count(*) as nums from ". PREFIX ."_post where category=7 OR category LIKE '%,7' OR category LIKE '7,%' OR category LIKE '%,7,%'"); while($row = $db->get_row($sql_result)) {echo($row['nums']);} ?> Далее, в меню, на против каждой категории инклудится соответствующий файл: {include file="cat_11.php"} Но что-то мне подсказывает что этот способ не совсем верный. Есть ли более грамотное решение, желательно с кешированием, для вывода количества новостей в категориях? Сайт: http://diafilmy.su/ Изменено 18 марта 2016 пользователем Mek Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 18 марта 2016 Рассказать Опубликовано: 18 марта 2016 (изменено) Ну у Павла все расписано, как делать с кэшем, разница только в запросах к БД, подставляйте свой и все Изменено 18 марта 2016 пользователем alex32 Цитата Ссылка на сообщение Поделиться на других сайтах
Mek 99 Опубликовано: 19 марта 2016 Рассказать Опубликовано: 19 марта 2016 Автор 7 часов назад, alex32 сказал: Ну у Павла все расписано, как делать с кэшем, разница только в запросах к БД, подставляйте свой и все Если бы я знал PHP то и вопросы такие не задавал. Из той статьи ничего не понял(( Цитата Ссылка на сообщение Поделиться на других сайтах
surfixx 1 Опубликовано: 20 марта 2016 Рассказать Опубликовано: 20 марта 2016 <?php if(!defined('DATALIFEENGINE'))die("Hacking attempt!"); //Подключаем API CMS DLE include ('engine/api/api.class.php'); //24 часа назад $thisdate = langdate( "Y-m-d", $_TIME-86400 )." 00:00:00"; //условие отбора новостей $where_date = " AND date > '" . $thisdate . "'"; //формируем список категорий которые мы ввели в параметр cat= $aviable = array(); $aviable = explode( ',', $cat ); //Выполняем запрос $SQL = $db->query ( "SELECT * FROM " . PREFIX . "_post WHERE category regexp '[[:<:]](" . implode ( '|', $aviable ) . ")[[:>:]]'".$where_date." and approve=1"); $count = $row = $db->num_rows(); if($count != 0) echo '+'.$count; ?> Rename script to - cat_count.php Add to engine/modules/ In template add this {include file="engine/modules/cat_count.php?cat=1"} or change cat=1 to cat u want. And Uhuuu. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.