следующий код, который я установил, чтобы результаты из 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
Я думаю, что было бы легче следовать коду, если $ currentRecord начинался с нуля. $ currentRecord сразу увеличивается на единицу, поэтому первый используемый ценность одна.
В следующем коде он начинается с нуля:
<?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. Там, вероятно, больше.
Других решений пока нет …