php - 限制从数据库返回的结果

标签 php javascript mysql greatest-n-per-group

我想从数据库中选择每张照片,然后按月份分组显示它们。我这里有该代码:

<?php
if (isset($_COOKIE['user_id'])) {
    if (!isset($_GET['user_id'])) {
        $user_id= $_COOKIE['user_id'];
    } else {
        $user_id= $_GET['user_id'];
    }
    $connect= mysqli_connect("localhost", "root", "", "si");
    $query= "SELECT * FROM posts WHERE user_id= $user_id ORDER BY date DESC";

    $result= mysqli_query($connect, $query)
        or die('error with query');
    $date = "0";

    while ($row= mysqli_fetch_array($result)) {
        if ($date != $row['date']) {
            echo "<p> ".$row['date']."</p><br/>";
            $date = $row['date'];
        }
        echo '<img src="'.$row['picture']. '"/>' . "<br/>";
    }
}
?>

唯一的问题是我的代码显示每个月的每张图像,这导致页面过大。我想将结果限制为每月仅 8 个(如果该月没有事件 8 张图片则更少),然后如果超过 8 个,则显示“显示更多...”链接。我知道如何添加对我的初始查询的限制,但这不适用于这种情况。我能做什么?

这是我想要的样子: desired layout

最佳答案

添加LIMIT $start,$numToDisplay

添加到您的 SQL 语句,并使用 PHP 计算 $start 变量的新值。

例如$pageNum = $_GET["page"] 和每页 8 个图像意味着您可以计算出:

$numToDisplay = 8;
$start = ($pageNum-1)*$numToDisplay;

关于php - 限制从数据库返回的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157142/

相关文章:

mysql - 自定义 Docker MySQL 构建无法运行

php - 如何在 View 页面中获取存储在数据库中的值

php - 内部联接如何使用 Doctrine 和 Symfony2 处理多对多关系

php - 在后台运行繁重的 PHP 脚本

php - 不正确的算术输出

php - Cakephp 显示其中 1=1

javascript - 图像在 Highcharts 中无法正确导出

php - mysql 和 php 关联数组

javascript - Sequelize limit 和 offset 查询中不正确的位置

javascript - 为什么 first() rxjs 运算符不断返回数组