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

回答編集履歴

5

formm→form

2018/05/18 01:54

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -70,8 +70,8 @@
70
70
  $facilityList .='<tr>';
71
71
  $facilityList .='<td>', $row ['facility_number'], '</td>';
72
72
  $facilityList .='<td>', $row ['facility_name'], '</td>';
73
- $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>';
74
- $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を省略するとデフォルトで「自身」となる
73
+ $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>';
74
+ $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を省略するとデフォルトで「自身」となる
75
75
  $facilityList .='</tr>';
76
76
  $facilityList .="\n";
77
77
  }

4

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

2018/05/18 01:54

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -96,4 +96,10 @@
96
96
  <br /><p><input type="submit" onclick="location.href= 'menu.php'" value="前画面に戻る" /></p>
97
97
  </body>
98
98
  </html>
99
- ```
99
+ ```
100
+
101
+ # その他、読んでおいたほうが良い記事
102
+ - [PHP初心者は最低限これはやっとけ - 開発に入る前編](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5)
103
+ - [PHPでデータベースに接続するときのまとめ](https://qiita.com/mpyw/items/b00b72c5c95aac573b71)
104
+ - [$_GET, $_POSTなどを受け取る際の処理](https://qiita.com/mpyw/items/2f9955db1c02eeef43ea)
105
+ - [PHPマニュアル:PDO](http://php.net/manual/ja/book.pdo.php)

3

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

2018/05/18 01:51

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -41,4 +41,59 @@
41
41
  何を見て書きましたか?
42
42
  約束事がほとんど守られていません。1行1行 もっと言えば1つ1つの関数や記述を確かめながら記述していってください。
43
43
 
44
- あとできれば、[構文などのエラーチェックをしてくれるIDEをご利用ください。](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#ide%E3%82%92%E4%BD%BF%E3%81%88)
44
+ あとできれば、[構文などのエラーチェックをしてくれるIDEをご利用ください。](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#ide%E3%82%92%E4%BD%BF%E3%81%88)
45
+
46
+
47
+ # サンプルコード(ボタンそれぞれ表示版)
48
+
49
+ **そのまま使わないように。必ず全て理解してから適応してください。未検証コードなので動作保証はありません。あくまで実装のイメージとして参考にしてください。**
50
+ ```php
51
+ <?php
52
+ //データベース接続
53
+ $pdo = new PDO ('mysql:host=localhost;dbname=simplefacilityusesystem;charset=utf8', 'user', 'paaward');
54
+
55
+ //データの削除
56
+ //select前に記述することでselect時に最新状態を取得する
57
+ if ($_SERVER ['REQUEST_METHOD'] === 'POST') {
58
+ if(array_key_exists($_POST, "facility_number") && !empty($_POST["facility_number"])){
59
+ $sql=$pdo->prepare('delete from facility where facility_number = :facility_number');
60
+ if(!$sql->execute(array(':facility_number' => $_POST["facility_number"]))){
61
+ die("削除失敗");
62
+ }
63
+ }
64
+ }
65
+
66
+ //データの取得
67
+ $facilityData = $pdo->query ( 'select * from facility' );
68
+ $facilityList = "";
69
+ foreach ( $facilityData as $row ) {
70
+ $facilityList .='<tr>';
71
+ $facilityList .='<td>', $row ['facility_number'], '</td>';
72
+ $facilityList .='<td>', $row ['facility_name'], '</td>';
73
+ $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>';
74
+ $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を省略するとデフォルトで「自身」となる
75
+ $facilityList .='</tr>';
76
+ $facilityList .="\n";
77
+ }
78
+ ?>
79
+ <!DOCTYPE html>
80
+ <html>
81
+ <head>
82
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
83
+ <title>Master Maintenance</title>
84
+ </head>
85
+ <body>
86
+ <h1>マスタメンテナンス画面</h1>
87
+ <p><input type="button" name="regist" onclick="location.href= 'registration.php'" value="新規登録" /></p>
88
+ <table border = "1" width = "auto">
89
+ <tr>
90
+ <th>設備No</th>
91
+ <th>設備名</th>
92
+ <th>選択</th>
93
+ </tr>
94
+ <?=$facilityList ?>
95
+ </table>
96
+ <br /><p><input type="submit" onclick="location.href= 'menu.php'" value="前画面に戻る" /></p>
97
+ </body>
98
+ </html>
99
+ ```

2

追記

2018/05/18 01:45

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -29,6 +29,15 @@
29
29
  としなければならないですし、引数のSQLがクォートで閉じられてない。
30
30
  また、where句がちゃんと最後まで指定されていない(検索文言がセットされていない)
31
31
 
32
+ 下記は不要。なぜならボタンにonclickで割り振られているからです。
33
+ ```php
34
+ print "<script language=javascript>del_action()</script>";
35
+ ```
36
+ PHPはサーバー側の言語なので、html表示前に実行されます。
37
+ 上記の記述があることで「アクセス時点でdel_action()が実行される」という事態が起きているものと推察されます。
38
+ あと、「特定の情報だけ削除したい」のであれば、その特定の情報(例えばIDなど)を渡さなければなりません。
39
+ master.php、change.phpなど複数のPHPの記述がありますが、どのコードがどのファイルに記述してあるのでしょうか?
40
+
32
41
  何を見て書きましたか?
33
42
  約束事がほとんど守られていません。1行1行 もっと言えば1つ1つの関数や記述を確かめながら記述していってください。
34
43
 

1

追記

2018/05/18 00:49

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -12,4 +12,24 @@
12
12
  </head>
13
13
  ```
14
14
 
15
- scriptタグがスペルミスで閉じられていない。
15
+ scriptタグがスペルミスで閉じられていない。
16
+
17
+ phpでもエラーがありますね。
18
+
19
+ ```php
20
+ $pdo = new PDO ('mysql:host=localhost;dbname=simplefacilityusesystem;charset=utf8', 'maint', '1qaz!QAZ'); //データベース接続
21
+ ```
22
+
23
+ としておきながら
24
+
25
+ ```php
26
+ $sql=dpo->prepare(delete from facility where facility_number = );
27
+ ```
28
+ dpo → $pdo
29
+ としなければならないですし、引数のSQLがクォートで閉じられてない。
30
+ また、where句がちゃんと最後まで指定されていない(検索文言がセットされていない)
31
+
32
+ 何を見て書きましたか?
33
+ 約束事がほとんど守られていません。1行1行 もっと言えば1つ1つの関数や記述を確かめながら記述していってください。
34
+
35
+ あとできれば、[構文などのエラーチェックをしてくれるIDEをご利用ください。](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#ide%E3%82%92%E4%BD%BF%E3%81%88)