【问题标题】:How to pull data from xml and break it in pages (pagination)如何从 xml 中提取数据并将其分解为页面(分页)
【发布时间】: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?

标签: php html paging simplexml


【解决方案1】:

你正在破坏你的 $all 变量:

$all = new SimpleXMLElement($url, null, true); // used by the loop
$all = new Paginator; // reset within the loop

【讨论】:

  • 对。已经更改了 var 的名称。无论如何它都会返回相同的问题
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 2022-12-10
  • 2016-05-07
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多