2012-02-03 52 views
2

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

<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> 
+4

是的,这是可能的。 – Brad 2012-02-03 21:29:23

+2

虽然你不会有foreach中的

    ,但它们会在外面 - 并且只显示单个列表项。 – 2012-02-03 21:31:38

    回答

    0

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

    但是,您将需要能够获得计数,并且能够显示一系列基于url字符串的结果,如?start = 10 & end = 20。

    剩下的就是简单地使用for循环或者一个或一个(if(count<start)continue;)(if(count>end)break;)

    您还需要生成链接去前进和后退的最起码的,如果你是不是产生一个链接的foreach在总数的开始或结束时。

    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
    • 页5只需要显示元件41-50

    可以计算偏移则是这样的:

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

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

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

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