Перейти к контенту
  • 0

Выборка статистики форума


aleos

Вопрос

День добрый! Возник вопрос - откуда форум версии 2.0.х берёт статистику - общее количество тем и постов. в 1.3 была таблица ibf_stats, а тут она не ведётся.

Задача исправить файлик ssi.php от версии 1.3 на вывод статистики 2.0.х

 

кусок кода такой имеем

function do_stats()
{
global $DB, $ibforums, $root_path, $templates_dir, $std;

// Load the template...

$template = load_template("stats.html");

$to_echo = "";

// Get the topics, member info and other stuff
$time = time() - 900;
 	
$DB->query("SELECT * FROM ibf_stats");
$stats = $DB->fetch_row();

$total_posts = $stats['TOTAL_REPLIES']+$stats['TOTAL_TOPICS'];

$to_echo  = parse_template( $template,
       array (
          'total_posts'  => $total_posts,
          'topics'       => $stats['TOTAL_TOPICS'],
          'replies'      => $stats['TOTAL_REPLIES'],
          'members'      => $stats['MEM_COUNT']
          )
       );


echo $to_echo;

exit();

}

 

здесь значений total_replies и total_topics просто берутся из базы...

 

Насколько я смог понять 2.0.х просто подсчитывает количество строк в таблицах постов и тем - это и есть искомые значения...

тогда может кто подскажет как это реализовать.

 

заранее благодарен

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

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

  • 0

Я сделал статистику напрямую из базы..

вот пример одного из скриптов..

<?php
   /* подключение к базе */
   $link = mysql_connect("localhost", "root", "")
       or die("Не удалось подключиться к БД. Проверьте адрес сервера, а также имя пользователя и пароль..");
  mysql_select_db("ib") or die("Не выбрана БД");

   /* выполнение запроса SQL query */
   $query = "select topics,posts,name from ib_forums order by posts desc";
   $result = mysql_query($query) or die(mysql_error());

   /* вывод в HTML */
   print '<table width="200" border="1" cellpadding="5" cellspacing="0">' . "\n";
echo <<<END
     <tr>
   <td>темы:</td>
   <td>сообщения:</td>
   <td>разделы:</td>
 </tr>
END;
   while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
       print "\t<tr>\n";
       foreach ($line as $col_value) {
 print "\t\t<td>$col_value</td>\n";
       }
     //  print "\t\t" . '<td><img src="1.gif"></td>' . "\n";
       print "\t</tr>\n";
   }
   print "</table>\n";

   /* освобождение resultset */
   mysql_free_result($result);

   /* отключение */
   mysql_close($link);
?>

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

  • 0

 

ну вообщето в той теме обсуждается не совсем тот вопрос.... или совсем не тот.

меня не интересует как востановить слетевший рекорд посещаемости и т.д.

 

Я сделал статистику напрямую из базы..

вот пример одного из скриптов..

<?php
   /* подключение к базе */
   $link = mysql_connect("localhost", "root", "")
       or die("Не удалось подключиться к БД. Проверьте адрес сервера, а также имя пользователя и пароль..");
  mysql_select_db("ib") or die("Не выбрана БД");

   /* выполнение запроса SQL query */
   $query = "select topics,posts,name from ib_forums order by posts desc";
   $result = mysql_query($query) or die(mysql_error());

   /* вывод в HTML */
   print '<table width="200" border="1" cellpadding="5" cellspacing="0">' . "\n";
echo <<<END
     <tr>
   <td>темы:</td>
   <td>сообщения:</td>
   <td>разделы:</td>
 </tr>
END;
   while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
       print "\t<tr>\n";
       foreach ($line as $col_value) {
 print "\t\t<td>$col_value</td>\n";
       }
     //  print "\t\t" . '<td><img src="1.gif"></td>' . "\n";
       print "\t</tr>\n";
   }
   print "</table>\n";

   /* освобождение resultset */
   mysql_free_result($result);

   /* отключение */
   mysql_close($link);
?>

 

сенкс, работает. но как сделать общую статистику форума, типа той что внизу на стартовой странице админки.

 

 

Количество тем 160

Количество ответов на темы 1207

Количество пользователей 62

 

подозреваю что суммирование значений полученных этим скриптом будет не совсем правильно.

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

  • 0

будет правильно.. посмотри какие поля тебе нужны в админке - sql тулз..

у меня для еженедельных отчетов все через подобные скрипты формируется..

очень удобно..

 

Остальное извеняй.. я сам только первую неделю копаю форум.. еще мало что понимаю :D

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

  • 0
будет правильно.. посмотри какие поля тебе нужны в админке - sql тулз..

у меня для еженедельных отчетов все через подобные скрипты формируется..

очень удобно..

 

Остальное извеняй.. я сам только первую неделю копаю форум.. еще мало что понимаю  :D

 

 

ок.

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

 

я думаю проще делать подсчёт строк в таблицах ibf_posts для количества сообщений и ibf_members для количества пользователей. Только вот функций таких не знаю, сам относительный новичёк в этом...

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

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

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

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

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.