0

我为我的网站制作了一个评论部分,我想根据 MySQL 查询返回的数据量生成页面,比如 15 MySQL Rows pr 页面,我尝试查看 $_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>
        ';
        }
}       
?>

时间和日期是在另一个脚本中设置的,所以不用担心,这段代码运行良好

4

2 回答 2

0

您可以在一条 SQL 语句中返回所有评论,然后使用 PHP 的数组块函数将它们拆分为多个数组。 http://php.net/manual/en/function.array-chunk.php 然后您可以将页面上的每个数组存储为 JS 变量并使用 AJAX 或任何您拥有的。

您可以向此函数传递一个数组(所有评论)和一个数字(例如 15),它会输出许多可能的长度为 5 的数组。因此,在您的情况下,如果数组中有 150 条评论并且您想限制一页有 15 条评论,此函数将返回 10 个数组,每个数组包含 15 个元素。

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

或者,您可以在 SQL 中为每个页面使用 LIMIT。你会想要看起来像这样的东西:

LIMIT 0, 15
LIMIT 15, 15
LIMIT 30, 15

... ETC

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

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

于 2013-02-04T18:06:41.143 回答
0

首先,获取表中所有行的计数:

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 参数替换为您想要的行的偏移​​量。第二个 LIMIT 参数是要返回的行数。

于 2013-02-04T17:56:40.837 回答