データベースアイテムが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. ページが見つかりません...ほとんどの場合
- 2. Webページが存在しない場合は、どのヘッダを返す必要がありますか?
- 3. ページがルートフォルダにある場合、PHPにページを含めるにはどうすればいいですか?
- 4. jQueryが現在のページに存在するかどうか
- 5. エンティティIDのみが指定されている場合、それがページ/アプリケーション/ユーザーかどうかをどのように伝えますか?
- 6. フォームアクションが別のページを指している場合、現在のページからポスト値を取得するにはどうすればよいですか?
- 7. クッキーが存在するかどうかを確認するには?私はクッキーが存在する場合、それは、このコードに有効期限が切れていたかどうかを判断しようとしていた
- 8. iFrameページが存在するかどうかを確認する
- 9. 入力がタイプチェックボックスである場合、jQueryがチェックしますか?入力がチェックボックスであるかどうか、そして次が動作しない場合
- 10. Socket.Connectが失敗した場合、そのドメインは存在しないと言うことができますか?
- 11. 別のページのページに1つの呼び出しメソッドが存在するのはどうですか?
- 12. 現在のページがGETリクエストまたはPOSTリクエストの結果であるかどうかを検出するブックマークレット
- 13. ページにアクティビティが見つからない場合の自動ログアウト
- 14. アプリが存在するかどうかを確認し、そうでない場合は、店舗に行く
- 15. FirefoxはそのページがAtomフィードであることをどのように知っていますか?
- 16. ファイルがメイクファイルのターゲットに存在するかどうかテストし、存在しない場合は終了する
- 17. は、どのように私はその後、私のデータベースにいくつかのデータを送信し、ユーザーがちょうどにしたスクロール位置を覚えておく方法がある場合だけで、私が思っていたたユーザーと同じページをリロードしていますページ
- 18. 同じ要素名を持つ2つのリンクがあり、ページの異なるフォーム上にある場合、どのように指定するか?
- 19. Node.jsダウンロードファイルが空であるか存在しない場合があります
- 20. 2つのdivが重複している場合、JQueryのslideDownはどうやってやるのですか?
- 21. そのリンクが現在のページにリンクしている場合、そのリンクをターゲットに設定しますか?
- 22. ファイルが存在しない場合、ファイルまたはディレクトリであるかどうかを調べるにはどうすればよいですか?
- 23. 2つの会場が合流した後、古いFoursquare会場にはどうなりますか?
- 24. 10385274000が適合するかどうかは、どのように知ることができますか:Oracleの場合はNUMBER(10)ですか?
- 25. のmod_rewriteルールは、私は、メンテナンスページの存在を探し、それが存在する場合、そのページにリダイレクトするようにApacheを設定している
- 26. 2つのセルがマージされているかどうかはどのようにわかりますか?
- 27. FindControlが存在する場合でもFindControlが見つかりません。
- 28. リソースが存在する場合でもリソースが見つかりません
- 29. セッションが存在するかどうかをチェックし、ファイルがアップロードされていない場合は
- 30. ページがナビゲーションスタックに存在するかどうかを確認する方法はありますか?
あなたのサイトに存在しないはずのページにリンクを張っていますか? – dqhendricks
いいえ...しかし、2ページに行くと、項目が表示されません。だから、そのページ番号が存在しない場合は、ページ1にデフォルトにしたい。 – Keverw
ヘッダーを使用してリダイレクトする場合を除き、ブックマーク、リンクの共有、および検索エンジンのインデックス作成が失敗する可能性があります。 – dqhendricks