使用“已保存”搜索进行数据分页

时间:2010-04-26 11:44:01

标签: php mysql search cakephp pagination

我正在创建一个搜索结果的页面......

当您查看其中一个结果时,在页面底部,我需要插入“下一个结果”和“上一个结果”链接,例如一个分页...但是从[我认为]一个已保存的搜索,对吗?

你们的人怎么会这样做?

Obs。:我将使用CakePHP(PHP)和MySQL

-

更新 问题不在于如何对搜索结果进行分页,例如“每页20个结果”......我需要在同一个搜索结果中从一个记录跳转到另一个记录。

让我说我用搜索找到了记录3,5,8和9 ...然后我点击查看#5记录,我可以点击“下一个结果”链接跳转到#8记录。

-

可能的解决方案#1

使用结果ID创建一个数组,如:

$results = array(3, 5, 8, 9);

使用令牌(SHA1,MD5或UUID)将此数组存储在会话或cookie中,并将此标记作为GET参数传递到URL中。

2 个答案:

答案 0 :(得分:1)

使用查询限制和偏移量。例如,在第1页上,偏移量为0,限制是您想要的结果量。随着分页的进行,偏移也是如此。例如,偏移量表示您要从第11个结果开始检索确定的结果数量 我从未使用CakePHP,但this article似乎很好地解释了如何进行分页。

答案 1 :(得分:0)

我不知道蛋糕,但你需要做的就是在搜索表单中使用GET方法,并在URL中保留查询字符串值。

在普通的PHP中我会使用http_build_query()函数,比如说,

if (isset($_GET['page'])) unset($_GET['page']);
$qs=http_build_query_string($_GET);
$url="?$qs&page=$page";

至于分页代码,你可以在SO

找到近千个主题