首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php怎么每页读取三条xml数据

2012-04-21 
php如何每页读取三条xml数据?以下代码可以将“9.xml”的shortdesc字段全部读出:---------------------------

php如何每页读取三条xml数据?
以下代码可以将“9.xml”的shortdesc字段全部读出:
-------------------------------------------
<?php
$xml_array=simplexml_load_file('9.xml'); //将XML中的数据,读取到数组对象中

foreach($xml_array as $tmp){
echo $tmp->shortdesc."<br>";
}

?>
---------------------------------------------
由于数据量非常大,我想实现的是每页只显示三条数据,当点击“下一步”按钮时,就接着显示下三条数据,直到数据全部显示完成,再点“下一步”按钮时,页面没有变化。请教如何实现?最好有代码,谢谢了。

[解决办法]
你原来是这样输出的
foreach($xml_array as $tmp){
echo $tmp->shortdesc."<br>";
}

要这样输出才行
$page = ($_GET['page'] - 1) * 3;
for($i=$page; $i<$page+3; $i++) {
echo $xml[$i]->shortdesc."<br>";
}

[解决办法]
老大的代码够明了的了
// 获取数组
$xml_array=simplexml_load_file('9.xml');
// 从第几条开始。你不是要求分页嘛,分页的话总得有个数据起始位置和偏移量。

// 那么这个数据起始位置就是 $page。 假设你要第2页,那么传入参数$_GET['page'] === 2
// (2-1)*3 即是 3 。这是按数组键值取得数据的,数组的键值从0开始。那么 0,1,2就是第一页,3,4,5就是第二页
$page = ($_GET['page'] - 1) * 3;
// 循环3次,计算看看$i每次的值,分别是 3, 4, 5 。那么就是上面说的取键值为3,4,5的数据
for($i=$page; $i<$page+3; $i++) {
echo $xml[$i]->shortdesc."<br>";
}
// 下一页的链接传入的参数就是 $_GET['page'] + 1 喽
[解决办法]
那就是你的不对了,你从一开始就没有提供正确的信息
你的
foreach($xml_array as $tmp){
echo $tmp->shortdesc."<br>";
}
并不能输出文档内容
要这样才可以
foreach($xml_array->news->new as $tmp){
echo $tmp->shortdesc."<br>";
}

而 $xml_array->news->new 是一个数组,于是
$xml = $xml_array->news->new;
$page = min(3, count($xml)-3);
for($i=$page; $i<$page+3; $i++) {
echo $xml[$i]->shortdesc."<br>";
}
就成立了

热点排行