将mysql结果按天分组,并使用分页返回到php页面


Group mysql results by day and echo to php page with pagination

我会尽力解释:

我正在从mysql数据库中检索要输出到php页面的记录。

结果需要按天分组,还需要分页。

示例:

8月24日

  • 结果1(例如标题、描述、图片)
  • 结果2(例如标题、描述、图片)
  • 结果3(例如标题、描述、图片)

8月23日

  • 结果1(例如标题、描述、图片)
  • 结果2(例如标题、描述、图片)
  • 结果3(例如标题、描述、图片)

分页:[1][2][3][4]

上述示例仅用于说明,因为每页上都有4天的结果。我知道,在最初的页面之后,每个页面都需要通过在页面上发布一个参数来抵消4天。

然而,我不知道按天显示结果的逻辑。

我知道需要一个while或foreach循环,并且可能需要一个循环中的一个循环来获得每天的所有结果。

我已经在网上搜索了一段时间,似乎找不到任何关于如何做到这一点的例子或指导

我不想把代码灌输给我,只想知道如何处理这种情况的逻辑。

如果有人能帮忙,我将不胜感激。

谢谢。

在简单的数据库查询(记住,您需要从字面上进行LIMIT以允许分页)之后,您可以通过在每个循环中检查是否是新的一天来将数组分成几天。

$lastday = null;
while($entry = mysqli_fetch_assoc($result)) {
    if($lastday != $entry['day']) {
        $lastday = $entry['day'];
        echo '<h3>' . $lastday . '</h3>';
    }
    // echo the entry result (title, description, picture)
}

您可能需要调整lastday和entry['day']参数,以反映您使用的任何日期格式(可以是mysql、unix或字符串)。此外,我使用了3级标题作为示例,但您应该选择符合您的上下文逻辑的标题。