PHP / SQL下一页 - 以下指南,可以使用帮助

时间:2016-05-24 05:16:26

标签: php mysql

我是菜鸟,我正在遵循设置计数,页码和指向SQL LIMIT查询后的其他页面的链接的指南。

http://evolt.org/node/19340/

到目前为止,一切正常。我有总计数,总页数和可链接页面。它看起来像这样,看起来很准确:

enter image description here

问题在于实际链接到下一页。链接无法使页面转到下一页,我得到错误,或者只是默认查询重新加载页面1.我永远无法访问第2页。

我坚持的页面部分标题为“链接到其他页面”。他使用这3个不同的行来制作页面链接:

<a href=\"$PHP_SELF?query=$query&page=$back_page&limit=$limit\">back</a> 
<a href=\"$PHP_SELF?query=$query&page=$ppage&limit=$limit\">$i</a>
<a href=\"$PHP_SELF?query=$query&page=$next_page&limit=$limit\">next</a>

无论我尝试什么,我都无法获得实际链接页面的代码。 $ query没有在我的代码中定义,我无法真正看到它在他的定义,所以我不知道如何正确地表达我的结构。我真的可以使用一些帮助。

关于我的代码的更多信息:

我的代码中的一些变量(查询是一个例子,因为它实际上要长得多):

$database = new mysqli($hostname, $username, $password, $databasename);

$sqlquery = "SELECT DISTINCT";  

$sql = "
event.event_id as 'Event ID',
event.event_group_id as 'Group ID',
abs_path.abs_path as 'Path\Filename'
FROM 
event.event_group
LEFT JOIN event.event using (event_group_id)
LEFT JOIN event.package_config using (event_id)
LEFT JOIN file_info.abs_path using (abs_path_id)
WHERE event.timestamp >= DATE_SUB(CURDATE(),INTERVAL $time)
LIMIT 50";

$result = $database->query($sqlquery.$sql);

如果我尝试将?query = $ query 变量替换为我的 $ sqlquery $ sql 变量,请执行以下操作:

<a href=\"$PHP_SELF?query=$sqlquery$sql&page=$back_page&limit=$limit\">back</a>

然后它会在浏览器中发生这种情况(当然我没有得到正确的结果):

enter image description here

我在他的代码和我的代码之间看到的另一个区别是他的代码显示了这个:

while ($data = mysql_fetch_array($results))

我这样做:

while($row = $result->fetch_row())

我不是在叫'阵列'。但是从我的研究来看,我不确定这是我的问题(这只是另一个不同的事情,所以我想我会提到它以防万一)

我无法获得_POST的查询,我不知道我做错了什么。我真的很沮丧。任何人都可以帮忙吗?如果需要,我可以提供更多信息。

感谢。

1 个答案:

答案 0 :(得分:0)

这是关于如何编写mysql查询的更多问题

MySQL Data - Best way to implement paging?

SELECT * FROM table_name WHERE conditions LIMIT offset, rows_count

在您的查询中,您只有偏移量

所以如果输入偏移量50,它将从50行到last_row

但如果每页有10行,则应使用

LIMTI 1, 10 -- for first page
LIMIT 11, 10 -- for 2nd page
...
LIMIT 101, 10 -- for 10th page
-- etc.