2011-01-07 11 views
1

私はsimpledbでオフセットを試してみましたが、mysqlで動作するようには機能しませんでした。PHPのデータベースapiのページングを行いたいので、pagenumberとpagelengthをクエリに送ります。そのページのデータのみ。 これはどのように私がsimpledbで行うことができます。pagination in simpledb

select * from second 
where time_stamp is not null and gibid = '54' and gibview = 'O' 
order by time_stamp asc limit $pagelength 

オフセットが機能しないため、クエリでオフセットを追加できません。 私はgoogleを持って、次のトークンが返されていることを知っていますが、私はnexttokenを取得していません。 nexttokenの確認方法

助けてください。

おかげで

答えて

1

は、クエリに渡しますは、NextToken文字列です。次のページに戻ります。

1

の$ pagelenghtは次のようになります。このような

$pagenum = 4; //current page 
$numitems = 20; //items per page 
$row_from = $pagenum * $numitems - $numitems; 
$pagelenght = $row_from.','.$numitems; 


in the end pagelenght should look like this 
$pagelenght = '0,20'; //first page 
$pagelenght = '20,20'; //second page 
$pagelenght = '40,20'; //third page 
$pagelenght = 60,20'; //forth page 

何か、最初の数はどの行からであり、第二には、どのように多くの1ページのアイテム数です。 $オフセットここ

$files = $this->db->select($domain, $query, $offset) 

簡単なDBには、NextTokenを使用して行わ

+0

でもこれはうまくいかないかもしれません – XMen

+0

私はそれがMySQLの構文だと思います – nico

0

SimpleDBのLIMITには1つの引数しかないことが確認されています。

確かに、私は(ドメインパーソンが存在する)次のクエリを試してみました: は「人LIMIT 20、20 SELECT * FROM」と私は次の応答だった: クライアントエラー:指定されたクエリ式の構文は有効ではありません。

制限が指定されていない場合でも、SimpleDBはデフォルトの制限100を適用します。最大の制限は2500行です。私はLIMITが他のデータベースとは違って働いていることを強調したいと思います。 LIMIT 100は、時間ごとに100件の結果が得られることを意味し、次のトークンを含む100個の結果の別のバッチを取得します(ただし、十分なデータがあれば)。

ページネーションを行う方法はトークンを使用しています。すでに取得したトークンをセッションに保存できるため、前のページに戻ることができます。

3

Simpledbチーム(この質問はフォーラムで尋ねられました)では、次のトークンを使用してこれを行う方法です。

リストから2500-2600番目のアイテムを取得し、最初の2500を反復しない場合、simpledbチームは2500までのカウント(*)を実行することをお勧めします。これは速く、次のその結果からトークンを取り出し、実際のクエリを発行して名前と属性を取得します。

限界は私が思った開始インデックスを取っていないという事実を巧みにハックするが、あなたにいくつかのパフォーマンスを保存する必要があります。ちょうどそれを共有したいと思った。

+0

これにスレッドへのリンクがありますか?これが正しければそれはよく知られていません。ほとんどの人は、そのページまであなたの道を歩くことを除いて、それは可能ではないと言います。指定されたオフセットに到達するために常に2つのクエリの最大値であるかどうかを知りたいでしょう。 - それを見つけたhttps://forums.aws.amazon.com/message.jspa?messageID=253237#253237 – jmathai

+0

良い発見、私はSDBチームの誰かを覚えていると思った。間違って覚えています。ここにリンクしてくれてありがとう。 –