回答編集履歴

1

修正

2019/05/16 04:09

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -25,3 +25,63 @@
25
25
 
26
26
 
27
27
  古い書籍なのか、初心者向けなのか分からないですが、初心者でもあまり参考にしてほしくない書籍・コードだと個人的には思います。
28
+
29
+
30
+
31
+ 追記を受けて
32
+
33
+ ----
34
+
35
+
36
+
37
+ > 「変数の情報と適応する情報が入った列が何行あるのか?」を取得するという認識で正しいのでしょうか?
38
+
39
+
40
+
41
+ 「変数の情報と」の意味が分からないですが、おおよそ理解通りかと。
42
+
43
+ PHPマニュアルにある「結果の行数」とは「今回の場合はSELECT文を実行した結果の行数」が入っていると考えて良いです。
44
+
45
+ select文の条件を色々変えてみたうえでmysqli_num_rows()の結果をechoで出力してみてどうなるか確認してみると良いです。
46
+
47
+
48
+
49
+ > ここで二つめの質問なのですが、ここで取得した連想配列とは、下のようなものでしょうか?
50
+
51
+
52
+
53
+ データによるので取得結果をvar_dump()で確認してみては如何でしょうか。
54
+
55
+ 「想定通りの情報が入っているか」デバッグにもなるのでぜひ確認してみてください。
56
+
57
+
58
+
59
+ > $row['username']というのはどのような意味なのでしょうか?
60
+
61
+ 予想では、ユーザーネームに入っている配列の「username」キーの情報を変数に格納するという意味だと思うのですが・・・・
62
+
63
+
64
+
65
+ ここで「予想」してしまうとプログラミングの概念的におかしくなります。
66
+
67
+ プログラムは**書いたとおりにしか動かない**ので実態を確認すべきです。
68
+
69
+ 1つ前で結果をvar_dump()で確認すればこの疑問の理解が進み、解消できますね。
70
+
71
+
72
+
73
+ > 最後の質問なのですが、exit();は必要なのでしょうか?
74
+
75
+
76
+
77
+ はい。基本的には必要とは思います。
78
+
79
+ なぜなら[header](https://www.php.net/manual/ja/function.header.php)はあくまでレスポンスを定義するものであり、リダイレクトを宣言したからといって、その時点で画面遷移が起こるわけではないからです。
80
+
81
+ 試しにheader()の直後に何か処理(できればログ出力とか、セッションとかで画面遷移しても影響が確認できる処理)を記載してみると良いです。
82
+
83
+
84
+
85
+ exitを書くのは**これ以降は何も処理を行いません**という意味で「プログラムを終了させる」ためであると言っても良いです。
86
+
87
+ もちろん「お作法のように書いておこう」ということであり、exitを書かなくても済むようなプログラムが望ましいですけど、「必ず何もない前提」のようなプログラミングもよろしくありません。