データベースアイテムが2つあり、ページごとに5ページ分のページがあることがわかっている場合は、ユーザーがページをリクエストした場合、そのページが存在するかどうかはどのように分かりますか?誰かがページをリクエストしてそのページに項目がない場合、ページ1をデフォルトにする必要があります。ページ2をリクエストした場合と同様に、ページ1にデフォルトする必要があります。数学だけど本当に分からない。データベース項目が2つで、ページが5つあることがわかっている場合は、ユーザーがページをリクエストした場合、そのページが存在するかどうかはどのように分かりますか?
0
A
答えて
1
$requestedPage = (int)$_GET['page'];
if (ceil($numResults/$perPage) < $requestedPage) {
$requestedPage = 1;
}
0
厳密に言えば、ユーザーが範囲外の値を手動で入力することを防ぐことはできません。
だから、私は気にしないだろう。
ちょうどあなたが、2ページ目のデータを照会する場合、結果が空の場合、最初のページに行くこと
+1
これはすばらしいユーザーエクスペリエンスを実現します。素晴らしいアドバイス。 –
0
彼に空白のページが表示されます。
0
各リクエストごとに、行のcount()を1ページあたりの数で割り、それを最も近い整数に丸めます。
これにより、合計ページ数が表示されます。各リクエストの前に、リクエストページが最後のページに< =であることを確認します。あなたは一例として使用することができます
相続人は、いくつかの便利な機能:
private function countRecords() {
$this->recordCount = count($this->data);
return;
}
private function calcPages() {
$this->totalPages = ceil($this->recordCount/$this->perPage);
return;
}
private function checkCurrent() {
$this->currentPage = ($this->currentPage > $this->totalPages ?
$this->totalPages :
$this->currentPage);
$this->currentPage = ($this->currentPage < 1 ? 1 : $this->currentPage);
return;
}
private function calcOffset() {
$this->offset = ($this->currentPage - 1) * $this->perPage;
}
0
素朴な実装では、データベースがすべての行を返すかどうかを確認するために、単純になります。あなたは、データベース・サーバーまたはあなたのフレームワークのインターフェイスについては言及しなかったので、私はあなたに実際のコードを与えることはできないが、粗く:
if(num_rows($query) == 0 && $page != 1) {
redirect_to_page_one() && return;
}
あなたはもちろん、リダイレクトを行うのではなく、透過的にそれを行うことができますが、それは始まり追いつくのがやや難しい
関連する問題
- 1. 5ページ目のページ分割 - 「ニュースフィード」に2つのモデルがあり、合計を改ページしていますか?
- 2. PHP - それはページがかかりすぎたことを示していた場合、ページのロードページが
- 3. ページが見つかりません...ほとんどの場合
- 4. レコードが存在しない場合、404ページにリダイレクトするにはどうすればよいですか?
- 5. 2つのファイルが存在するかどうかをチェックし、1つだけ存在する場合はどうするかを確認します。 Python 2
- 6. Webページが存在しない場合は、どのヘッダを返す必要がありますか?
- 7. Wordpress - ページが存在しない場合にページをリダイレクトする
- 8. ページがルートフォルダにある場合、PHPにページを含めるにはどうすればいいですか?
- 9. がつがつ食うHTTP - 例外が存在するか、ページ
- 10. jQueryが現在のページに存在するかどうか
- 11. エンティティIDのみが指定されている場合、それがページ/アプリケーション/ユーザーかどうかをどのように伝えますか?
- 12. は、ファイルが存在するかどうかを判断します。ファイルが存在しない場合は、
- 13. ユーザー名が存在しない場合ユーザーをページにリダイレクト
- 14. JDBC Realmを使用している場合、ようこそページはどのように動作しますか?
- 15. フォームアクションが別のページを指している場合、現在のページからポスト値を取得するにはどうすればよいですか?
- 16. 「投稿ページが1ページ目のコードを表示するよりも大きい場合」はどのようにWordPressにありますか?
- 17. iFrameページが存在するかどうかを確認する
- 18. JAVASCRIPT/AJAXがCookieが存在する場合はページをリロードするその他のページには
- 19. 同じページで2つの選択が1つしかない場合(第2)
- 20. ユーザーが現在のWebページを残す場合、データをデータベースに保存する
- 21. 2つ以上のフィールドが存在する場合、どのようにマングースでスキーマを検索しますか?
- 22. ユーザーがページから離れて移動した場合のページの状態を維持するにはどうすればよいですか?
- 23. Github APIはファイルが存在するかどうかをチェックし、存在する場合はGETしますか?
- 24. タグにng-clickディレクティブが2つある場合、どうなりますか?
- 25. waitpidの場合、子プロセスが終了したかどうかはどのようにわかりますか?
- 26. URLからパラメータを隠すには、あるページから別のページにデータを渡す必要がある場合はどうすればいいですか?
- 27. クッキーが存在するかどうかを確認するには?私はクッキーが存在する場合、それは、このコードに有効期限が切れていたかどうかを判断しようとしていた
- 28. 現在のページがGETリクエストまたはPOSTリクエストの結果であるかどうかを検出するブックマークレット
- 29. divがページ上にあるかどうかを確認します。非表示の場合は
- 30. 別のページのページに1つの呼び出しメソッドが存在するのはどうですか?
あなたのサイトに存在しないはずのページにリンクを張っていますか? – dqhendricks
いいえ...しかし、2ページに行くと、項目が表示されません。だから、そのページ番号が存在しない場合は、ページ1にデフォルトにしたい。 – Keverw
ヘッダーを使用してリダイレクトする場合を除き、ブックマーク、リンクの共有、および検索エンジンのインデックス作成が失敗する可能性があります。 – dqhendricks