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

回答編集履歴

4

見直し

2021/05/25 05:03

投稿

退会済みユーザー
answer CHANGED
@@ -14,4 +14,17 @@
14
14
  [mysqli_fetch_all](https://www.php.net/manual/ja/mysqli-result.fetch-all.php)
15
15
  数行~数十行程度のオーダーならいいけど、
16
16
  膨大になるようならやはり1行ずつ取得するスタイルがいいよ。
17
- サンプルコードをじっくり読んでね。
17
+ サンプルコードをじっくり読んでね。
18
+
19
+ それと、配列に何千件、何万件も溜め込んでから配列の中で処理を回すのって、
20
+ そんなに速くないから、
21
+ クエリーの工夫でたとえば、
22
+
23
+ - 全体の件数を取得するクエリー。
24
+ - 必要なオーダーのデータ数に絞り込んで、データを部分的に表示。
25
+ - ページネーションを実施して、小出しに表示。
26
+
27
+ みたいにしたらいい。
28
+ クエリーの工夫の仕方がわからず、仕方なく配列に全部読み込んで、配列で加工するスタイルは初学者にありがち。
29
+ 配列に全部のデータを格納してから配列の件数をカウントする、のはナンセンス。
30
+ まぁ、場合によるけれど。

3

見直し

2021/05/25 05:03

投稿

退会済みユーザー
answer CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  サンプルコードを見たほうが理解できるかも。
4
4
  1行分ずつ取得して処理するスタイル。
5
+ ```php
6
+ while($row=mysqli_fetch_assoc($result)){
7
+ // echo $row['id']; などとして結果にアクセス可能
8
+ $count++;
9
+ }
10
+ ```
11
+ このブロックが終わったときにはすでにクエリー結果の読み出しが終わっちゃっている。
5
12
 
6
13
  2次元的にまるっと取得したければ、むしろこちら:
7
14
  [mysqli_fetch_all](https://www.php.net/manual/ja/mysqli-result.fetch-all.php)

2

見直し

2021/05/25 04:58

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,10 @@
1
1
  [PHP: mysqli_result::fetch_assoc - Manual](https://www.php.net/manual/ja/mysqli-result.fetch-assoc.php)
2
2
 
3
3
  サンプルコードを見たほうが理解できるかも。
4
+ 1行分ずつ取得して処理するスタイル。
4
5
 
5
6
  2次元的にまるっと取得したければ、むしろこちら:
6
- [mysqli_fetch_all](https://www.php.net/manual/ja/mysqli-result.fetch-all.php)
7
+ [mysqli_fetch_all](https://www.php.net/manual/ja/mysqli-result.fetch-all.php)
8
+ 数行~数十行程度のオーダーならいいけど、
9
+ 膨大になるようならやはり1行ずつ取得するスタイルがいいよ。
10
+ サンプルコードをじっくり読んでね。

1

見直し

2021/05/25 04:51

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,6 @@
1
1
  [PHP: mysqli_result::fetch_assoc - Manual](https://www.php.net/manual/ja/mysqli-result.fetch-assoc.php)
2
2
 
3
- サンプルコードを見たほうが理解できるかも。
3
+ サンプルコードを見たほうが理解できるかも。
4
+
5
+ 2次元的にまるっと取得したければ、むしろこちら:
6
+ [mysqli_fetch_all](https://www.php.net/manual/ja/mysqli-result.fetch-all.php)