Структура форума Получить последнее сообщение - PullRequest
0 голосов
/ 26 февраля 2009

Мой английский не очень хорош. Я хочу показать дату, когда последнее сообщение было опубликовано на форуме. Это мой форум Шема:

  `forum_id` int(11) NOT NULL auto_increment
  `forum_name` varchar(255) NOT NULL
  `forum_description` text NOT NULL
  `forum_order` int(11) NOT NULL

  `thread_id` int(11) NOT NULL auto_increment
  `thread_title` varchar(255) NOT NULL
  `thread_text` text NOT NULL
  `thread_date` datetime NOT NULL
  `forum_id` int(11) NOT NULL default '0'
  `thread_author` int(11) NOT NULL


  `comment_id` int(11) NOT NULL auto_increment
  `comment_text` text NOT NULL
  `comment_thread_id` int(11) NOT NULL default '0'
  `comment_poster` int(11) NOT NULL default '0'
  `comment_date` datetime NOT NULL

Forums.php

   $query = mysql_query("SELECT * FROM forums ORDER BY forum_order ASC");
   while ($row = mysql_fetch_assoc($query)) {


  <h3>Forum: <?php echo $row['forum_name'] ?><h3>
  <div>Desc: <?php echo $row['forum_description'] ?></div>
  <div>Last post: <?php echo $??['comment_date'] ?></div>
  <?php } ?>

Как бы я сделал, чтобы получить дату последнего комментария для всего форума? Может быть, добавить поле в таблице потоков, где я храню дату последнего комментария? Может быть, лучше? Не знаю, как объяснить это лучше.

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 февраля 2009

Что-то вроде:

SELECT forums.*, max(comments.date) as last_comment
FROM forums 
LEFT OUTER JOIN threads ON forums.forum_id = threads.forum_id
LEFT OUTER JOIN comments ON threads.thread_id = comments.comment_thread_id
GROUP BY forums.forum_id
ORDER BY forum_order ASC
0 голосов
/ 26 февраля 2009

Вы должны запросить вашу базу данных. (Вы должны посмотреть в своем коде, как это сделано.)

SELECT comment_date FROM dates ORDER BY comment_date DESC LIMIT 1;

(LIMIT 1 указывает базе данных возвращать только одну запись.)

А затем распечатайте эту запись. (Опять же, вы должны посмотреть в своем коде.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...