我有一个非常简单的 PHP 函数,获取所有结果(从两个表“元素”和“类别”并将它们显示在一个站点上(直接在 index.php 上)
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 新手,我的逻辑是这样的:
- 找出最高id
- 将上述结果/值减去数字10
- 创建一个如下所示的 if 函数:“如果 $highest_id = 在 'lastInsertId() - 10' 的范围内,则应用 css-class 'new-item'”(很抱歉把它写成一个句子,不像真正的 if 函数,但如前所述,我是新手...)
但我真的不知道从哪里开始/从哪里开始,过去 3.15 小时的谷歌搜索并没有让我更进一步?!
谢谢。
最佳答案
您不能简单地从最高 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 = "";
}
关于php - 如何将 css 类添加到 mysql 数据库的最后 10 个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46052092/