Php 根据MySql查询返回的数据量生成页面

Php 根据MySql查询返回的数据量生成页面,php,dynamic-pages,Php,Dynamic Pages,我正在为我的站点制作一个评论部分,我想根据MySQL查询返回的数据量生成页面,比如15行MySQL pr页面,我尝试过使用$u GET[pageID]方法,但我根本不明白 有人能详细说明一下或给我一个建议吗?目前,我将Sql结果回送到reviews.php页面上的一个div中 我目前的情况是: <?php $con = mysql_connect("localhost", "cencor","cencor"); if (!$con) { die('<br /><

我正在为我的站点制作一个评论部分,我想根据MySQL查询返回的数据量生成页面,比如15行MySQL pr页面,我尝试过使用$u GET[pageID]方法,但我根本不明白

有人能详细说明一下或给我一个建议吗?目前,我将Sql结果回送到reviews.php页面上的一个div中

我目前的情况是:

<?php
$con = mysql_connect("localhost", "cencor","cencor");
 if (!$con) {
    die('<br /><br />Could not connect: ' . mysql_error());
}

function feedbackList() {
mysql_select_db("cencor") or die(mysql_error());

$localIP = $_SERVER['REMOTE_ADDR']; // get IP

$rows = mysql_query("SELECT * FROM feedback WHERE approved=1 ORDER BY sorting DESC");

while ($row = mysql_fetch_array($rows)) {

        echo '
        <div id="reviews">
            <div id="date">'. $row['date'] . "</div> <div id='time'>" . $row['time'] .'</div>
            <h2>'. $row['name'] .'</h2>
            <br>
            <p>'. $row['feedback'] .'</p>
        </div>
        ';
        }
}       
?>


时间和日期是在另一个脚本中设置的,因此不用担心,这段代码运行良好。首先,获取表中所有行的计数:

SELECT COUNT(*) FROM feedback WHERE approved=1
现在您知道将有多少页,并且可以显示每个页的链接

查询第一页:

SELECT * FROM feedback WHERE approved=1 ORDER BY sorting DESC LIMIT 0, 15
这将为您提供表中的前15行。在接下来的页面中,您将使用:

LIMIT 15, 15
LIMIT 30, 15
LIMIT 45, 15

等等。只需将第一个LIMIT参数替换为您想要的行偏移量。第二个限制参数是要返回的行数。

您可以在一条SQL语句中返回所有评论,然后使用PHP的array chunks函数将它们拆分为多个数组。然后,您可以将页面上的每个数组存储为JS变量,并使用AJAX或其他任何工具

您可以向这个函数传递一个数组(所有的评论)和一个数字(比如15),它将输出任意多个长度为5的数组。因此,在您的例子中,如果一个数组中有150条评论,并且希望将一个页面限制为15条评论,那么这个函数将返回10个数组,每个数组包含15个元素

然后,您只需获取每个评论数组,并将其表示为一个页面

或者,您可以对每个页面使用SQL中的LIMIT。您可能需要类似以下内容的内容:

LIMIT 0, 15
LIMIT 15, 15
LIMIT 30, 15
。。。等

第一个数字是从哪个索引开始,第二个数字是显示多少个结果


因此,您可以执行类似(15*(页码-1))的操作来获取每页的第一个数字(假设页码从1开始)。

请注意,不要破坏您的旧问题。虽然它们对你可能不再重要,但对遇到它们的其他人来说可能很重要。@ceejayoz;在你编辑之前的几秒钟,我看到了问题,然后是答案,我认为答案已经被打破了,0_0