php xml分页问题缺少一个结果
我将下面的代码设置为将xml的结果放入分页中,这在很大程度上是可行的,但每次都缺少一行 所以我把它设置为7,每页只显示6个结果 这是我的密码:php xml分页问题缺少一个结果,php,xml,pagination,Php,Xml,Pagination,我将下面的代码设置为将xml的结果放入分页中,这在很大程度上是可行的,但每次都缺少一行 所以我把它设置为7,每页只显示6个结果 这是我的密码: $thispage= $_SERVER['PHP_SELF']; $startPage = $_GET['page']; $perPage =7; $currentRecord = 0; / Start XML Parsing $dom = new DOMDocument(); $dom->load('Playlist.xml'
$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开始。如果$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>";
}
}
?>
这样更好吗?对不起,我自己没有试过。我也没有修复id='title'的多次出现,也没有为$startPage设置默认值。可能还有更多。页面变量,它是从0还是1开始?什么页面变量?这几乎就是所有的代码,当你点击分页中的第1页时,链接是什么样子的?我会说它从零开始。但是索引是从一开始的。是的,就是这样。。。是的,我确信有很多东西需要清理!我在学习哈利