代码之家  ›  专栏  ›  技术社区  ›  Thiago Belem

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

  •  0
  • Thiago Belem  · 技术社区  · 14 年前

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

    当您查看其中一个结果时,我需要在页面底部插入“ 下一个结果 “和” 上一个结果 “链接,就像分页…但我认为是一个保存下来的搜索,对吧?

    你们会怎么做?

    obs.:我将使用cakephp(php)和mysql

    ——

    更新: 问题不在于如何对搜索结果分页,比如“每页20个结果”…我需要从一个记录跳到另一个记录,顺序在同一个搜索结果。

    假设我在搜索中找到了记录3,5,8和9…然后我点击查看5条记录,我可以点击“下一个结果”链接跳转到8条记录。

    ——

    可能的解决方案1

    创建一个结果ID为的数组,如:

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

    并用一个令牌(sha1、md5或uuid)将此数组存储在会话或cookies中,并在url中将此令牌作为get param传递。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Jorge Guberte    14 年前

    使用查询限制和偏移。例如,在第1页上,偏移量为0,限制是所需的结果量。随着分页的进行,偏移量也会随之增加。例如,偏移量表示要从第11个结果开始检索已确定数量的结果。
    我从没用过cakephp,但是 this article 似乎很好地解释了如何分页。

        2
  •  0
  •   Your Common Sense    14 年前

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

    使用普通的php http_build_query() 功能,比如说,

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

    至于分页代码,你可以在这里找到近千个主题