Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Совсем запутался с постраничной навигацией (XML и PHP5)
 
 автор: coloboc66   (18.03.2010 в 16:43)   письмо автору
 
 

Есть файл file.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
<msg id="msg0" time='time0'><text>Сообщение 1</text></msg>
<msg id="msg1" time='time1'><text>Сообщение 2</text></msg>
...
<msg id="msgN" time='timeN'><text>Сообщение N</text></msg>
</root>

Нужно вывести сообщения с постраничной навигацией в обратном порядке, т.е. чем оно свежее-позднее, тем оно быть ближе к верху на странице,т.е. при условии 2 сообщения на странице и общем числе сообщений - 3 так:
стр.1:
Сообщение 3
Сообщение 2
стр.2:
Сообщение 1
Код РНР такой:
$msgs_in_page=2;
if(!isset($page)) $page=0;
else $page=$_GET['page'];
$dom = new DOMDocument;
$dom->load('file.xml');
$items = $dom->getElementsByTagName( "msg" );
$count_msgs=$items->length;
$pages=ceil($count_msgs/$msgs_in_page);
$first_msg=($count_msgs)-($page*$msgs_in_page);
$last_msg=$first_msg-$msgs_in_page;
if($last_msg<0)$last_msg=0;
for($i=$first_msg;$i>$last_msg;$i--)
{
echo "<div class='message' >";
$nodelist[$i]=$items->item($i);
$msgid=$items->item($i)->getAttribute('id');
$time=$items->item($i)->getAttribute('time');
echo "<span class='attribut' > Time: $time</span><br/>";
echo $nodelist[$i]->firstChild->nodeValue;
echo "</div><hr/>";
}
echo "<br/><table><tr><td>Page: </td>";
for ($n=0;$n<$pages;$n++) {
$k=$n+1;echo "<td><a href=read1.php?page=".$n." >".$k."</a></td>";
}
echo "</tr></table>";

В общем кое-как работает, но некорректно.
Помогите кто может. Или может есть способы проще?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования