teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2018/04/20 00:45

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -27,7 +27,8 @@
27
27
 
28
28
  追記:
29
29
  「総件数」をとってきたあとの変数のcount()でとってきていますが、これはよろしくないです。
30
- というのは住所録となると何万件もの件数となるため、「全部とってきてそこからちょっと取り出す」のはリソースの無駄となります。
30
+ というのは住所録となると何万件もの件数となるため、「全部とってきてそこからちょっと取り出す」のは
31
+ 処理がかなり重たくなり、表示も遅くなります。
31
32
  SQLでlimitをかけていない状態でcountして総件数とすべきかと思います。
32
33
 
33
34
  余談:

1

修正

2018/04/20 00:45

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -25,8 +25,14 @@
25
25
  ?page={$i}
26
26
  のような形でURLに埋め込み、SQLには$_GET["page"]を利用してlimit かける。
27
27
 
28
+ 追記:
29
+ 「総件数」をとってきたあとの変数のcount()でとってきていますが、これはよろしくないです。
30
+ というのは住所録となると何万件もの件数となるため、「全部とってきてそこからちょっと取り出す」のはリソースの無駄となります。
31
+ SQLでlimitをかけていない状態でcountして総件数とすべきかと思います。
32
+
28
33
  余談:
29
34
  SQLにユーザーからの入力値を含めるのであれば必ずエスケープをすべきです。
30
35
  - [mysqli_real_escape_string()](http://php.net/manual/ja/mysqli.real-escape-string.php)
36
+
31
37
  それかPDOでのDBアクセスをご検討ください。
32
38
  とても参考になる記事:[PHPでデータベースに接続するときのまとめ](https://qiita.com/mpyw/items/b00b72c5c95aac573b71)