2017-09-05 46 views
0

我有一個非常簡單的PHP函數,提取所有結果(兩個表中的「項目」和「類別」,並在一個單一的網站上顯示他們(直接的index.php)如何添加一個css類到mysql數據庫的最後10個條目?

function fetchAllItems($pdo) 
{ 
    $statement = $pdo->prepare('select Items.*, Categories.* 
           from Items 
           INNER JOIN Categories ON Items.ItemCategoryID = Categories.id 
           ORDER BY Items.ItemName ASC' 
          ); 

    $statement->execute(); 

    return $statement->fetchAll(PDO::FETCH_CLASS, 'Item'); 
} 

現在我想添加到左邊的圖標與CSS到最新的(= 10個的最後一個SQL數據庫條目/行),但我不知道該怎麼辦

作爲PHP新手我的邏輯是這樣的:

  • 確定最高編號
  • 減去上述結果/值的數字10
  • 創建一個類似if的函數:「if $ highest_id ='lastInsertId() - 10'範圍內,然後應用css-class'new-item '「(抱歉寫下來像一句話,不像一個真正的if函數,但如前所述,我是新的...)

但我真的不知道從哪裏開始/並在過去的3.15小時內使用谷歌搜索沒有帶來任何進一步的?!

謝謝。

+0

嘛你需要做的第一件事就是輸出它們。在那裏你會申請這個班。 – Utkanos

+0

按ID降序排列查詢,最後按LIMIT 10排序。 – ADyson

+0

使用'ORDER BY {FieldName} DESC',所以,前10個結果將被識別爲'New'。 '{FieldName}'應該是'自動遞增' –

回答

1

您不能簡單地從最高ID中減去10以獲得第10高,因爲ID序列中可能存在間隙。

爲了得到最高的10點的ID,使用:

SELECT id 
FROM Items 
ORDER BY id DESC 
LIMIT 10 

把這些放到一個數組$first_10,然後當你顯示的fetchAllItems的結果,你可以這樣做:

if (in_array($row->id, $first_10) { 
    $class = "newest"; 
} else { 
    $class = ""; 
} 
相關問題