【问题标题】:PHP pagination unordered list itemPHP分页无序列表项
【发布时间】:2012-05-03 14:29:14
【问题描述】:

我从外部源获取一个数组值,并将其转换为无序列表以显示在网页上。但有时列表的内容非常大,无法在单个页面上显示。是否可以对内容进行分页,以便每页显示 10 个列表项。

   <div id="a">
      <div id="object3">TRIVIA</div>
      <div class="details">
        <?php foreach ($tri as $key): echo "<ul><li>$key</li></ul>"; endforeach ?>
      </div>
    </div>

【问题讨论】:

  • 虽然你不会在 foreach 中有
      ,但它们会在外面 - 你只会显示单个列表项。

    标签: php mysql pagination


    【解决方案1】:

    是的,但它实际上需要编写一个分页器。

    但是,您需要能够获得计数,并能够根据 ?start=10&end=20 之类的 url 字符串显示一系列结果。

    剩下的就是简单地使用 for 循环或带有 (if(count&lt;start)continue;)(if(count&gt;end)break;) 的 foreach

    您还需要生成至少可以前进和后退的链接,并且如果您处于总数的开头或结尾,则不要生成链接。

    【讨论】:

      【解决方案2】:

      您需要传递给脚本的唯一信息是页码,因为这是页面之间唯一会发生变化的信息。

      您还需要了解其他一些信息,例如numberPerPage,但它们包含在您的脚本中并且永远不会更改。

      这是一个 MySQL 语句,可以帮助您入门:

      SELECT columnList
      FROM table
      ORDER BY someColumn
      LIMIT 10,5
      

      LIMIT 子句表示跳过前 10 条记录,然后给我接下来的 5 条记录。这是所有使用 MySQL 后端的分页脚本的基础和起点。

      那么你怎么知道偏移量呢?

      由我之前提到的外部信息,当前页码,结合我之前提到的内部信息,每页的数量。

      如果您想查看第 5 页并且您打算每页显示 10 个元素,那么很容易看出您想从第 41 行开始:

      • 第 1 页显示元素 1-10
      • 第 2 页显示元素 11-20
      • 第 3 页显示元素 21-30
      • 第 4 页显示元素 31-40
      • 第 5 页需要显示元素 41-50

      你可以这样计算偏移量:

      $offset = $numPerPage * ($curPage - 1)
      

      在第 1 页上,偏移量将为 0(这是您想要的)。

      在第 2 页上,偏移量将为 10,依此类推。

      Here 是更详尽的分页教程的链接。

      【讨论】:

        【解决方案3】:

        PEAR 的Pager 包已为此任务制作。请参阅examples

        【讨论】:

          猜你喜欢
          • 2020-02-12
          • 2017-12-17
          • 1970-01-01
          • 2015-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-20
          相关资源
          最近更新 更多