PHP分页无序列表项

时间:2012-02-03 21:28:14

标签: php mysql pagination

我从外部源获取数组值,然后将其转换为无序列表以显示在网页上。但有时列表的内容非常大,无法在单页上显示。是否可以对内容进行分页,以便每页显示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>

3 个答案:

答案 0 :(得分:0)

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

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

其余的只是使用for循环或fore {(if(count<start)continue;)(if(count>end)break;)

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

答案 1 :(得分:0)

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

您需要了解其他一些信息,例如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
  • 需要显示元素41-50

您可以通过这种方式计算偏移量:

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

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

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

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

答案 2 :(得分:0)

PEAR的Pager包已经完成了这项任务。请参阅examples