回答編集履歴

3

追記

2018/11/23 06:04

投稿

退会済みユーザー
test CHANGED
@@ -107,3 +107,21 @@
107
107
  $number = $max_n + 1;
108
108
 
109
109
  ```
110
+
111
+
112
+
113
+ 《追記2》
114
+
115
+ たまたま編集用番号が入力されていれば編集処理になってしまいかねないし、
116
+
117
+ たまたま削除用番号が入力されていれば削除処理になってしまいかねないので、
118
+
119
+ [複数ボタンのあるFormで押されたボタンを判断する - Qiita](https://qiita.com/echoprogress/items/17e85ad489bddf07b540)
120
+
121
+ の「ボタンにname属性を利用する(nameが全てのボタンで同じ場合)」の事例
122
+
123
+ にあるようにtype="submit"の送信ボタンにもname="submit"などとして
124
+
125
+ 押したボタンが何だったかを判定に加えるようにすると良いでしょう。
126
+
127
+ $_POST['submit']を参照することで、判定できます。

2

加筆修正

2018/11/23 06:04

投稿

退会済みユーザー
test CHANGED
@@ -24,7 +24,9 @@
24
24
 
25
25
  ・編集用データ読出処理
26
26
 
27
+ ・フォーム表示処理(新規・編集兼用)
28
+
27
- フォーム表示処理
29
+ 投稿一覧表示処理
28
30
 
29
31
 
30
32
 
@@ -42,39 +44,39 @@
42
44
 
43
45
 
44
46
 
45
-
47
+ 1<>~
46
48
 
47
-
49
+ 2<>~
48
50
 
49
-
51
+ 3<>~
50
52
 
51
-
53
+ 4<>~
52
54
 
53
-
55
+ 5<>~
54
56
 
55
57
  がある状況で3を削除するとデータファイル上は
56
58
 
57
-
59
+ 1
58
60
 
59
-
61
+ 2
60
62
 
61
-
63
+ 4
62
64
 
63
-
65
+ 5
64
66
 
65
67
  になりませんか? このときデータ行数は4なので$numberには5が入りそうですが、
66
68
 
67
69
  ふつうにデータファイルに書き出してしまうと
68
70
 
69
-
71
+ 1
70
72
 
71
-
73
+ 2
72
74
 
73
-
75
+ 4
74
76
 
75
-
77
+ 5
76
78
 
77
-
79
+ 5
78
80
 
79
81
  になりますからダメですね。
80
82
 
@@ -83,3 +85,25 @@
83
85
  $numberを作るには、面倒でも
84
86
 
85
87
  各行データを解釈して投稿番号の最大値を求めて+1しましょう。
88
+
89
+
90
+
91
+ ```php
92
+
93
+ $max_n = 0;
94
+
95
+ foreach ($lines as $line) {
96
+
97
+ $portion = explode("<>", $line);
98
+
99
+ if (intval($portion[0]) > $max_n) {
100
+
101
+ $max_n = $portion[0];
102
+
103
+ }
104
+
105
+ }
106
+
107
+ $number = $max_n + 1;
108
+
109
+ ```

1

加筆修正

2018/11/23 05:56

投稿

退会済みユーザー
test CHANGED
@@ -31,3 +31,55 @@
31
31
  という流れがスマートだろうと思うので、
32
32
 
33
33
  見直しをかけてみてください。
34
+
35
+
36
+
37
+ 《追記》
38
+
39
+ $numberという変数で投稿番号を発番していますが、
40
+
41
+ 発番用にデータファイルから読み出した行数を使っていますね。
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ がある状況で3を削除するとデータファイル上は
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+ になりませんか? このときデータ行数は4なので$numberには5が入りそうですが、
66
+
67
+ ふつうにデータファイルに書き出してしまうと
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ になりますからダメですね。
80
+
81
+
82
+
83
+ $numberを作るには、面倒でも
84
+
85
+ 各行データを解釈して投稿番号の最大値を求めて+1しましょう。