簡體   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