Forum Yapısı Son Gönder alın

2 Cevap php

Benim ingilizce o kadar iyi değil. Ben o son yazılan bir forumda yayınlanmıştır zaman tarihini göstermek istiyorum basicaly. Bu benim forum shema olduğunu:

  `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 } ?>

How would I do to get the last comment date for all forum? Maybe add a field in threads table where i store the last comment date? Maybe better way? Don't know how to explein this any better.

Teşekkürler

2 Cevap

Gibi bir şey:

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

Eğer veritabanını sorgulamak gerekiyor. (Bu nasıl yapılır kodunuzda bakmak zorunda.)

SELECT comment_date FROM dates ORDER BY comment_date DESC LIMIT 1;

(LIMIT 1 sadece bir giriş dönmek için veritabanı söyler.)

Ve sonra bu girdiyi yazdırın. (Yine, kodunuzda bakmak zorunda.)