[英]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.