下面的代码我设置为将xml的结果放入分页中,它大部分都在工作,但每次都缺少一行。
所以我把它设置为7它每页只显示6个结果 这是我的代码:
$thispage= $_SERVER['PHP_SELF'];
$startPage = $_GET['page'];
$perPage =7;
$currentRecord = 0;
/ Start XML Parsing
$dom = new DOMDocument();
$dom->load('Playlist.xml');
$xmlPath = new DOMXPath($dom);
$arrNodes = $xmlPath->query('//channels/channel');
foreach($arrNodes as $item){
$currentRecord += 1;
if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)){
// Get Name
$id=$item->getAttribute('id');
// lets limit title
$string=$item->getAttribute('name');
$finTitle = (strlen($string) > 55) ? substr($string,0,52).'...' : $string;
// lets limit category
$cat=$item->getAttribute('category');
$category= (strlen($cat) > 20) ? substr($cat,0,17).'...' : $cat;
// now we have the URL to pass on
$vidUrl=$item->getAttribute('url');
if($bgcolor=='#f1f1f1'){$bgcolor='#ffffff';}
else{$bgcolor='#f1f1f1';}
echo "<tr >";
echo "<td bgcolor=$bgcolor id='title ' align=center> <font face='Verdana' size='2'>$id</font></td>";
echo "<td bgcolor=$bgcolor id='title' align=center> <font face='Verdana' size='2'>$finTitle</font></td>";
echo "<td bgcolor=$bgcolor id='title' align=center> <font face='Verdana' size='2'>$category</a></font></td>";
echo "</tr>";
}
}
谢谢我相信我一开始就错过了某些地方,我以为它就在这里: $ currentRecord + = 1; 但如果我将其更改为1或0则不会显示任何结果
下一页将从8开始完全错过第7页结果,之后将从15开始
答案 0 :(得分:0)
如果$ currentRecord从零开始,我认为遵循代码会更容易。 $ currentRecord立即增加1,因此第一个使用的值为1。
在以下代码中,它从零开始:
<?php
$thispage= $_SERVER['PHP_SELF'];
$startPage = $_GET['page'];
$perPage =7;
$currentRecord = 0;
// Start XML Parsing
$dom = new DOMDocument();
$dom->load('Playlist.xml');
$xmlPath = new DOMXPath($dom);
$arrNodes = $xmlPath->query('//channels/channel');
$startIdx = $startPage * $perPage;
$endIdx = ($startPage + 1) * $perPage;
foreach($arrNodes as $currentRecord => $item){
if(($currentRecord >= $startIdx) && ($currentRecord < $endIdx)) {
// Get Name
$id=$item->getAttribute('id');
// lets limit title
$string=$item->getAttribute('name');
$finTitle = (strlen($string) > 55) ? substr($string,0,52).'...' : $string;
// lets limit category
$cat=$item->getAttribute('category');
$category= (strlen($cat) > 20) ? substr($cat,0,17).'...' : $cat;
// now we have the URL to pass on
$vidUrl=$item->getAttribute('url');
if($bgcolor=='#f1f1f1'){$bgcolor='#ffffff';}
else{$bgcolor='#f1f1f1';}
echo "<tr >";
echo "<td bgcolor=$bgcolor id='title ' align=center> <font face='Verdana' size='2'>$id</font></td>";
echo "<td bgcolor=$bgcolor id='title' align=center> <font face='Verdana' size='2'>$finTitle</font></td>";
echo "<td bgcolor=$bgcolor id='title' align=center> <font face='Verdana' size='2'>$category</a></font></td>";
echo "</tr>";
}
}
?>
这样更好吗?对不起 - 我自己也没试过。我也没有修复过多次出现的&#34; id =&#39; title&#39;&#34;也没有为$ startPage设置默认值。可能还有更多。