参见英文答案 > How to Paginate lines in a foreach loop with PHP 2个
下面是我用于解析XML文件的代码,但是文件有很多记录,我想对它进行分页,每页显示20条记录.
我还想在页面底部的分页链接,以便用户也可以转到其他页面.它应该是这样的,如果没有给出值,那么它将从0开始到20否则如果值是2从40开始并且停止在60,test.PHP?page = 2.
$xml = new SimpleXMLElement('xmlfile.xml', 0, true);
foreach ($xml->product as $key => $value) {
echo "<a href=\"http://www.example.org/test/test1.PHP?sku={$value->sku}\">$value->name</a>";
echo "<br>";
}
解决方法:
这样的事情应该有效:
<?PHP
$startPage = $_GET['page'];
$perPage = 10;
$currentRecord = 0;
$xml = new SimpleXMLElement('xmlfile.xml', 0, true);
foreach($xml->product as $key => $value)
{
$currentRecord += 1;
if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)){
echo "<a href=\"http://www.example.org/test/test1.PHP?sku={$value->sku}\">$value->name</a>";
//echo $value->name;
echo "<br>";
}
}
//and the pagination:
for ($i = 1; $i <= ($currentRecord / $perPage); $i++) {
echo("<a href='thispage.PHP?page=".$i."'>".$i."</a>");
} ?>