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