2011-01-30 19 views
1

私はlast.fm/ google maps mashupを作成して、あなたが検索した都市の地図マーカーをプロットします。last.fm APIページ区切り

last.fm APIレスポンスは、このようなものです:現在

<events location="New York" page="1" totalpages="105" total="1050"> 
<event> 
    <id>640418</id> 
    <title>Nikka Costa</title> 
    <artists> etc. 

、あなたはたとえば、エディンバラを検索することができます - そしてそれはすぐに来て最初の10本のライブを取り戻すだろう。私は結果を返すためにPHPと単純なXMLを使用しています。

ページネーションを追加したいので、最初の10ギグはページ1になります。私は、ユーザーが後のギグを楽しみに待つことができるように、他のページのリストを持っていたいと思います。

mysql/phpのページングには多くの有用なリソースがありますが、動的なPHP/XMLやAPIではあまり役に立ちません。これに接近する最善の方法は何でしょうか?

答えて

3

last.fm APIでは、ページ番号などのパラメータが使用できます。ですから、このようなあなたの要求に何か構造になります。

http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=new+york&api_key=api key &ページ= 2

をあなたのPHPコードで$ _GETを使用してページ番号を渡すと、それに応じて、リクエストURLを更新することができます。

$page = 1; 
if (isset($_GET['lfm_pageid'])) { 
    $page = $_GET['lfm_pageid']; 
} 

$lfm_events = new SimpleXMLElement("http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=new+york&api_key=b25b959554ed76058ac220b7b2e0a026&page=$page", NULL, TRUE); 

foreach ($lfm_events->events->event as $event) { 
    echo $event->title . '<br />'; 
} 

これは明らかに、GETパラメータなどのエラー処理を行わない非常に基本的な例です。本番環境では使用しないでください。