回答編集履歴

5

formm→form

2018/05/18 01:54

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -142,9 +142,9 @@
142
142
 
143
143
  $facilityList .='<td>', $row ['facility_name'], '</td>';
144
144
 
145
- $facilityList .='<td><formm method="post" id="mychange'.$row['facility_number'] .'" action="change.php"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="update">編集</button></form></td>';
146
-
147
- $facilityList .='<td><formm method="post" id="mydel'.$row['facility_number'] .'"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="delete">削除</button></form></td>'; //actionを省略するとデフォルトで「自身」となる
145
+ $facilityList .='<td><form method="post" id="mychange'.$row['facility_number'] .'" action="change.php"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="update">編集</button></form></td>';
146
+
147
+ $facilityList .='<td><form method="post" id="mydel'.$row['facility_number'] .'"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="delete">削除</button></form></td>'; //actionを省略するとデフォルトで「自身」となる
148
148
 
149
149
  $facilityList .='</tr>';
150
150
 

4

その他、読んでおいたほうが良い記事

2018/05/18 01:54

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -195,3 +195,15 @@
195
195
  </html>
196
196
 
197
197
  ```
198
+
199
+
200
+
201
+ # その他、読んでおいたほうが良い記事
202
+
203
+ - [PHP初心者は最低限これはやっとけ - 開発に入る前編](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5)
204
+
205
+ - [PHPでデータベースに接続するときのまとめ](https://qiita.com/mpyw/items/b00b72c5c95aac573b71)
206
+
207
+ - [$_GET, $_POSTなどを受け取る際の処理](https://qiita.com/mpyw/items/2f9955db1c02eeef43ea)
208
+
209
+ - [PHPマニュアル:PDO](http://php.net/manual/ja/book.pdo.php)

3

サンプルコード(ボタンそれぞれ表示版)

2018/05/18 01:51

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -85,3 +85,113 @@
85
85
 
86
86
 
87
87
  あとできれば、[構文などのエラーチェックをしてくれるIDEをご利用ください。](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#ide%E3%82%92%E4%BD%BF%E3%81%88)
88
+
89
+
90
+
91
+
92
+
93
+ # サンプルコード(ボタンそれぞれ表示版)
94
+
95
+
96
+
97
+ **そのまま使わないように。必ず全て理解してから適応してください。未検証コードなので動作保証はありません。あくまで実装のイメージとして参考にしてください。**
98
+
99
+ ```php
100
+
101
+ <?php
102
+
103
+ //データベース接続
104
+
105
+ $pdo = new PDO ('mysql:host=localhost;dbname=simplefacilityusesystem;charset=utf8', 'user', 'paaward');
106
+
107
+
108
+
109
+ //データの削除
110
+
111
+ //select前に記述することでselect時に最新状態を取得する
112
+
113
+ if ($_SERVER ['REQUEST_METHOD'] === 'POST') {
114
+
115
+ if(array_key_exists($_POST, "facility_number") && !empty($_POST["facility_number"])){
116
+
117
+ $sql=$pdo->prepare('delete from facility where facility_number = :facility_number');
118
+
119
+ if(!$sql->execute(array(':facility_number' => $_POST["facility_number"]))){
120
+
121
+ die("削除失敗");
122
+
123
+ }
124
+
125
+ }
126
+
127
+ }
128
+
129
+
130
+
131
+ //データの取得
132
+
133
+ $facilityData = $pdo->query ( 'select * from facility' );
134
+
135
+ $facilityList = "";
136
+
137
+ foreach ( $facilityData as $row ) {
138
+
139
+ $facilityList .='<tr>';
140
+
141
+ $facilityList .='<td>', $row ['facility_number'], '</td>';
142
+
143
+ $facilityList .='<td>', $row ['facility_name'], '</td>';
144
+
145
+ $facilityList .='<td><formm method="post" id="mychange'.$row['facility_number'] .'" action="change.php"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="update">編集</button></form></td>';
146
+
147
+ $facilityList .='<td><formm method="post" id="mydel'.$row['facility_number'] .'"><input type="hidden" name="facility_number" value="' . $row['facility_number'] . '"><button name="delete">削除</button></form></td>'; //actionを省略するとデフォルトで「自身」となる
148
+
149
+ $facilityList .='</tr>';
150
+
151
+ $facilityList .="\n";
152
+
153
+ }
154
+
155
+ ?>
156
+
157
+ <!DOCTYPE html>
158
+
159
+ <html>
160
+
161
+ <head>
162
+
163
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
164
+
165
+ <title>Master Maintenance</title>
166
+
167
+ </head>
168
+
169
+ <body>
170
+
171
+ <h1>マスタメンテナンス画面</h1>
172
+
173
+ <p><input type="button" name="regist" onclick="location.href= 'registration.php'" value="新規登録" /></p>
174
+
175
+ <table border = "1" width = "auto">
176
+
177
+ <tr>
178
+
179
+ <th>設備No</th>
180
+
181
+ <th>設備名</th>
182
+
183
+ <th>選択</th>
184
+
185
+ </tr>
186
+
187
+ <?=$facilityList ?>
188
+
189
+ </table>
190
+
191
+ <br /><p><input type="submit" onclick="location.href= 'menu.php'" value="前画面に戻る" /></p>
192
+
193
+ </body>
194
+
195
+ </html>
196
+
197
+ ```

2

追記

2018/05/18 01:45

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -60,6 +60,24 @@
60
60
 
61
61
 
62
62
 
63
+ 下記は不要。なぜならボタンにonclickで割り振られているからです。
64
+
65
+ ```php
66
+
67
+ print "<script language=javascript>del_action()</script>";
68
+
69
+ ```
70
+
71
+ PHPはサーバー側の言語なので、html表示前に実行されます。
72
+
73
+ 上記の記述があることで「アクセス時点でdel_action()が実行される」という事態が起きているものと推察されます。
74
+
75
+ あと、「特定の情報だけ削除したい」のであれば、その特定の情報(例えばIDなど)を渡さなければなりません。
76
+
77
+ master.php、change.phpなど複数のPHPの記述がありますが、どのコードがどのファイルに記述してあるのでしょうか?
78
+
79
+
80
+
63
81
  何を見て書きましたか?
64
82
 
65
83
  約束事がほとんど守られていません。1行1行 もっと言えば1つ1つの関数や記述を確かめながら記述していってください。

1

追記

2018/05/18 00:49

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -27,3 +27,43 @@
27
27
 
28
28
 
29
29
  scriptタグがスペルミスで閉じられていない。
30
+
31
+
32
+
33
+ phpでもエラーがありますね。
34
+
35
+
36
+
37
+ ```php
38
+
39
+ $pdo = new PDO ('mysql:host=localhost;dbname=simplefacilityusesystem;charset=utf8', 'maint', '1qaz!QAZ'); //データベース接続
40
+
41
+ ```
42
+
43
+
44
+
45
+ としておきながら
46
+
47
+
48
+
49
+ ```php
50
+
51
+ $sql=dpo->prepare(delete from facility where facility_number = );
52
+
53
+ ```
54
+
55
+ dpo → $pdo
56
+
57
+ としなければならないですし、引数のSQLがクォートで閉じられてない。
58
+
59
+ また、where句がちゃんと最後まで指定されていない(検索文言がセットされていない)
60
+
61
+
62
+
63
+ 何を見て書きましたか?
64
+
65
+ 約束事がほとんど守られていません。1行1行 もっと言えば1つ1つの関数や記述を確かめながら記述していってください。
66
+
67
+
68
+
69
+ あとできれば、[構文などのエラーチェックをしてくれるIDEをご利用ください。](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#ide%E3%82%92%E4%BD%BF%E3%81%88)