2010-08-04 2 views
0

Salut tout le monde, j'utilise simplexml pour extraire des données d'une source XML externe. J'ai des valeurs même pour limiter le nombre de résultats à afficher. J'ai pensé que je pouvais paginer avec une requête simple dans l'URL, quelque chose comme "& page = 2" mais ce n'est pas possible dans la mesure où la documentation montre.Comment extraire des données de xml et les décomposer en pages (pagination)

J'ai téléchargé une classe de pagination destinée à être utilisée dans une requête MYSQL et j'ai essayé d'utiliser la sortie vars du fichier xml. Mais la sortie charge tous les résultats du fichier xml et non ceux spécifiés dans les variables d'URL.

Je pense que je pourrais commencer par compter les résultats, puis paginer, ce que j'essaie de faire. Voyez-vous quelque chose dans ce code qui peut être amélioré? Désolé Si ce n'est pas clair, mais peut-être discuter avec des gars de codeurs, je peux voir un peu de lumière au bout du tunnel et exaplin un peu mieux.

Voici le code:

<? 
$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"; 

// vois que je suis déjà en train de définir le num maximum de lignes dans l'URL. Ce qui signifie que la bonne façon de régler cela est de commencer à compter à partir du # devant?

$all = new SimpleXMLElement($url, null, true);  
$all->items_total = $hotels->id; 

//
require_once 'paginator.class.php'; // appeler la classe paginator

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

// création d'un nouveau paginator $ pages-> mid_range = 7; $ pages-> items_total = $ hotel-> id; // extraction du var à partir du 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();      

?>   
+0

Toute personne a un indice? Pensez-vous que j'appelle à juste titre le var? – Flavio

Répondre

1

Vous $all votre variable démolir:

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

Droite. Déjà changé le nom de la var. Il retourne le même problème de toute façon – Flavio

Questions connexes