Перейти к публикации

Вывод количества новостей в категориях


Рекомендованные сообщения

Кто знает 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/

Изменено пользователем Mek
Ссылка на сообщение
Поделиться на других сайтах

Ну у  Павла все расписано, как делать с кэшем, разница только в запросах к БД, подставляйте свой и все


 

Изменено пользователем alex32
Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, alex32 сказал:

Ну у  Павла все расписано, как делать с кэшем, разница только в запросах к БД, подставляйте свой и все


 

Если бы я знал PHP то и вопросы такие не задавал. Из той статьи ничего не понял((

Ссылка на сообщение
Поделиться на других сайтах
<?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.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...