【发布时间】:2011-03-25 06:26:10
【问题描述】:
大家好,我正在使用 simplexml 从外部 xml 源中提取数据。即使限制要显示的结果数量,我也有值。我以为我可以在 URL 中使用一个简单的查询进行分页,例如“&page=2”,但据文档显示这是不可能的。
我下载了一个打算在 MYSQL 查询中使用的分页类,并尝试使用 xml 的 vars 输出。但输出是加载 xml 的全部结果,而不是在 URL vars 中指定的。
我想我可能会做的是先计算结果然后分页,这就是我想要做的。您在这段代码中看到任何可以改进的地方吗?抱歉,如果不清楚,但也许可以与一些编码人员讨论,我可以在隧道尽头看到一点光,并解释得更好。
代码如下:
<?
$url ="http://www.somedomain.com/cgi/xml/engine/get_data.php?ref=$ref&checkin=$checkin&checkout=$checkout&rval=$rval&pval=$pval&country=$country&city=$city&lg=$lg&orderby=$orderby&ordertype=$ordertype&maxrows=$maxrows";
// 看到我已经在 url 中定义了最大行数。这意味着解决这个问题的正确方法是从 # 前面开始计数?
$all = new SimpleXMLElement($url, null, true);
$all->items_total = $hotels->id;
//
require_once 'paginator.class.php';
//调用分页器类
foreach($all as $hotel) // loop through our hotels
{
$pages = new Paginator;
//创建一个新的分页器 $pages->mid_range = 7; $pages->items_total = $hotel->id; //从XML中提取var
$rest = substr($hotel->description, 0, -150); // returns "abcde"
//echo <<<EOF
<table width="100%" border=0>
<tr>
<td colspan="2"><a href="{$hotel->rooms->room->bookUrl}">{$hotel->name}<span class="stars" widht="{$hotel->rating}">{$hotel->rating}</span></h2></a></a><p><b>Direccion:</b> <i>{$hotel->address}</i> - {$hotel->province}</p>
<td colspan="2"><div align="center">PRECIO: {$hotel->currencyCode} {$hotel->minCostOfStay</a>
</div></a></a>
</td>
</tr>
<tr>
<td colspan="2"> $rest...<a href="{$hotel->rooms->room->bookUrl}"><strong>ampliar información</strong></a></td>
<td valign="middle"><div align="center"><a href="{$hotel->rooms->room->bookUrl}"><img src="{$hotel->photoUrl}"></div></td>
</tr>
<tr>
<td colspan="2"><div align="center"><a href="{$hotel->rooms->room->bookUrl}"><strong>VER TODO SOBRE ESTE </strong></a></div></td>
<td colspan="2"><div align="center">$text</a></div></td>
</a></div></td>
</tr>
//EOF;
echo '</table>';
$pages->paginate();
}
echo $pages->display_pages();
?>
【问题讨论】:
-
有人有线索吗?认为我正确地调用了 var?