繁体   English   中英

如何获取每个类别的最新帖子

[英]How to get latest posts from each category

我使用PHP和MySQL创建了一个网站,我有一个表,其中包含以下行ID-POST TITLE-CATEGORY。 现在我有10个帖子发布在三个不同的类别(体育,健康,世界)上,并且我希望SQL允许我从每个类别中获取最新帖子。

我试过了

<?php 
    $scat_sql = mysql_query("select * from videos where category = 'sport' order by id desc limit 1"); 
    while($scat_row = mysql_fetch_assoc($scat_sql)){
        $scat_link = $scat_row['post title'];
    }
?>

但是问题是我需要为每个类别重复此代码。 我想要的输出看起来像这样:

健康

最新健康类别

运动

最新体育类帖子

世界

世界类别的最新文章

如果您还没有datetime字段,我会在表中添加它,例如date_posted 添加新帖子时,将当前日期和时间以及其他字段插入date_posted

当您需要每个类别中的三个最新帖子时,可以使用group by语句以及date_posted上的min函数。

select * from videos
inner join (
    select min(date_posted) date_posted from videos group by category
) recent on (recent.date_posted = videos.date_posted);

内部联接中的选择将获取每个类别的最新date_posted。 内部联接将date_posted与正确的行匹配并联接以获取其他值。

$command = "SELECT * FROM videos WHERE category='sport' ORDER BY id DESC LIMIT 1";
$result = mysql_query ($command) or die ("<strong>Error:</strong> ". mysql_error());
while ($row = mysql_fetch_array ($result))
    {
       echo $row[name_of_the_column_you_want_to_echo]; 
    };

那应该做。

如果只想缩短代码,则可以将类别(表)插入数组或另一个表中。 循环读取该表或数组,并使查询中的表成为变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM