order by RANDのページネーションでアイテムが重複する問題を解決

2018/02/09更新 カテゴリー:WEBシステム開発 タグ: , ,
SPONSOR
  • このエントリーをはてなブックマークに追加

order by RANDを使うと、表示順番を変えられます。

しかし、limitをつかってページネーションを組み込む場合、毎回order by RANDされるため、表示されるアイテムが重複してしまいます。1ページ目に表示されているアイテムを考慮しておらず、毎回全データからランダムなアイテムが表示されるということです。

SPONSOR

seedを指定すればいい

結論として、order by RAND(seed)というように、seedを指定してあげればいいです。このseedは文字列でOKです。

使えそうなアイディアとしては、セッションをつかって
$_SESSION[“rankey”] = uniqid(rand(), true);
のようにセッションがきれるまでは固有のseedをつくり、利用する方法です。

このようにすると、同じseedが使われるためページをまたいでもアイテムが重複されることがありません。

  • このエントリーをはてなブックマークに追加
SPONSOR

PRODUCT

イリテクで開発したプロダクト

PROFILE

プロフィール

入江 慎吾/イリテク代表
「死ぬ気でやれよ、死なないから」をモットーに体当たりでWEBサービスをつくってます🔥 収入もないのに受託開発をやめて好きなサービスだけをつくることに決めました。資金がつきるか、ヒットするのが先か...見守ってください。 (詳しいプロフィール)
WEBサービス・アプリ開発に役立つ情報をイリテクの入江がお届けします。プログラミング、UI/UXデザイン、SNS・ブログマーケティングなど、プロダクト開発だけで自由に生きていくための実践的な情報を配信しています。

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす