Как извлечь данные из xml и разбить их на страницы (разбиение на страницы) - PullRequest
0 голосов
/ 04 августа 2010

Привет всем, я использую simplexml для извлечения данных из внешнего источника XML.У меня есть значения даже для ограничения количества отображаемых результатов.Я думал, что мог бы разбить на страницы с помощью простого запроса в URL, что-то вроде «& page = 2», но это не представляется возможным, как показывает документация.

Я загрузил класс разбиения на страницы, предназначенный для использования в запросе MYSQL,пытался использовать Vars выход из XML.Но выходные данные загружают все результаты xml, а не указанные в пределах URL-переменных.

Я думаю, что я мог бы сначала подсчитать результаты, а затем разбить их на страницы, что я и пытаюсь сделать,Видите ли вы что-нибудь в этом коде, что можно улучшить?Извините Если это не ясно, но, возможно, обсуждая с некоторыми ребятами кодеров, я вижу немного света в конце туннеля и объясняю чуть лучше.

Так вот код:

<?
$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';// вызываем класс paginator

foreach($all as $hotel) // loop through our hotels
{
    $pages = new Paginator;

// создаем новый paginator $ pages-> mid_range = 7;$ pages-> items_total = $ hotel-> id;// извлекаем переменную из XML

    $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();                    

?>        

1 Ответ

1 голос
/ 04 августа 2010

Вы забиваете переменную $all:

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