Page 1 sur 1

ordonner les résultats d'un fichier

Posté : 23 juil. 2007, 14:28
par béka
Bonjour,

j'aurais voulu savoir s'il existait une fonction en xml qui permet de faire un affichage (d'utilisateurs par exemple) par ordre alphabétique (du genre en SQL ORDER BY...) depuis un attribut d'un noeud ?

Et aussi de faire une "pagination" des résultats trouvés. C'est à dire affciher 20 résultats, et les reste sur une page 2.

Je sais pas si j'étais assez clair..

EDIT :
j'ai fais quelques recherches, et il s'avère que la solution qui permettrait de faire ça serait de faire un tableau avec les résultats que je ressors et ensuite utiliser la fonction sort() sur ce tableau.

Mais comment créer un tableau avec ceci :
<?
$user = $xpPractices->query('//user');

  for ($j=0; $j < $practice->length ; $j++) { 
  $idUser = $user->item($j)->getAttribute('id');
  $name = $user->item($j)->getAttribute('name');

...

echo "<tr bgcolor='".( ($i++ % 2 == 0) ? '#FFFFFF' : '#EEEEEE' )."'>
  <td>".$name."</td>
  </tr>";
}
?>

Posté : 31 juil. 2007, 08:58
par tanky
Pour le tri par nom, tu peux utiliser usort() pour utiliser ton propre algo de tri. (cf exemple sur php.net)
Pour la pagination, il te suffit de n'afficher que les N premiers, puis les N suivants ... a ma connaissance (pas des plus experte en XML) il n'y a pas, comme en SQL, de clause LIMIT dans une requete XML. C'est donc à l'affichage qu'il faut limiter les résultats.

Posté : 31 juil. 2007, 09:31
par béka
oui mais quand on ne connais pas le nombre exacte d'enregistrement, comment alors faire pour afficher par exemple 20 résultats par pages ? Et comment faire des liens les pages qui contiennent les résultats suivants et précédents ?

Sinon en ce qui concerne le tri des résultats que l'non sort directement d'un fichier xml, tu dis qu'on peut utiliser directement la fonction usort() ?