gpt4 book ai didi

PHP - 如果行大于 20,则限制 10 偏移量 1

转载 作者:可可西里 更新时间:2023-11-01 07:05:12 24 4
gpt4 key购买 nike

在数据库中的 10 个最新主题之后,我显示了前 10 个最新主题和最后 10 个最旧主题。我能够在前 10 个主题中显示我需要的内容。我的问题是当我在数据库中有 21 个主题时,最后 10 个主题根据我想要的显示,但是当我只有 20 个主题时,最后一个主题最新的仍然是最旧的。为了更清楚,这里有一张引用图片。

-当我在数据库中有 21 个或更多主题时会发生这种情况-

This is what happen when I have 21 or more topics in database-这就是我在数据库中有 20 个主题时发生的情况- This is what happen when I have 20 topics in database

我不希望某个主题像我有 20 个主题时那样重复。这是我从数据库中获取最后 10 个主题的代码:

    //  fetching last 10 topics from forum
function history() {
$sql = "SELECT * FROM (
SELECT f_id AS id, f_title AS name,f_dept AS dept,f_last_view AS last_view
FROM forum
ORDER BY last_view ASC
LIMIT 10 OFFSET 1
) AS `table` ORDER by last_view DESC ";

//-run the query against the mysql query function
$result=mysql_query($sql) or die(mysql_error());


$history = array();

//-create while loop and loop through result set
while (($row = mysql_fetch_assoc($result)) !== false){
$history[] = array(
'id' => $row['id'],
'name' => $row['name'],
'dept' => $row['dept'],
'last_view' => $row['last_view'],
);
}

return $history;
}

附言我知道 mysql_* 已被弃用,但请耐心等待。提前谢谢你

最佳答案

您的问题有点不清楚 - 您想要最新的 10 个(您正在工作)还是最旧的 10 个?还是最新的 10 个和下一个最新的 10 个?

我假设你的意思是最新的 10 个和下一个最新的 10 个。

您的问题似乎在于理解 sql 中的 offset 关键字。偏移会导致跳过该数量的结果。

基于此,您目前正在按最后一个 View (我假设是某种形式的时间戳)对结果进行升序排序 - 从最旧到最新,然后从第二个开始选择其中的 10 个。

如果你想要的是第 11-20 个最新结果,那么试试

ORDER BY last_view DESC
LIMIT 10 OFFSET 10

在您的查询中。

另见 this stackoverflow question有更详细的答案

关于PHP - 如果行大于 20,则限制 10 偏移量 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com