質問編集履歴

1

情報の追記

2022/04/14 14:00

投稿

Jedda
Jedda

スコア80

test CHANGED
File without changes
test CHANGED
@@ -4,18 +4,79 @@
4
4
  ## 実現したいこと
5
5
  SQLのdelete文で削除ボタンを押したときに本のデータが削除されるようにしたい。
6
6
  ## わからないこと
7
- SQLでbooksテーブルのidカラムをバインドさせ、選択した本のデータが削除されるようにいのだが、削除できない。
7
+ なぜ本のデータが削除されないのか、私とてはSQL文が間違ってるとかそ辺りと思っているのですそこだけに固執している可能性があり皆さんの力をお借りしたい。
8
8
  ## 実際に行ったこと
9
9
  idカラムをバインドさせるのではなくtitleカラムをバインドさせることをやってみたが変化なし。
10
10
  ## 参考にしたWEBページ
11
11
  https://www.sql-reference.com/delete/delete.html
12
12
  https://style.potepan.com/articles/15564.html
13
13
  http://www.mitene.or.jp/~rnk/TIPS_ORCL_DELETE.htm>
14
- ## リポジトリURL
15
- https://github.com/Ituking/php.git
16
-
17
14
  ## 開発環境
18
15
  Mac OS Monterey 12.3.1
19
16
  PHP version 7.4.16
20
17
 
18
+ コード
19
+ ```
20
+ <?php
21
+ // db_connect.phpの読み込み
22
+ require_once("db_connect.php");
21
23
 
24
+ // function.phpの読み込み
25
+ require_once("function.php");
26
+
27
+ // ログインしていなければ、login.phpにリダイレクト
28
+ check_user_logged_in();
29
+
30
+ // URLの?以降で渡されるIDをキャッチ
31
+ $id = $_GET['id'];
32
+ // もし、$idが空であったらmain.phpにリダイレクト
33
+ // 不正なアクセス対策
34
+ if (empty($id)) {
35
+ header("Location: main.php");
36
+ exit;
37
+ }
38
+
39
+ // PDOのインスタンスを取得
40
+ $pdo = db_connect();
41
+
42
+ if (!empty($_POST)) {
43
+ // idを格納
44
+ $id = $_POST["id"];
45
+ try {
46
+ // SQL文の準備
47
+ $sql = "delete from 'books' where 'books'.'id' = ':id'";
48
+ // プリペアドステートメントの作成
49
+ $stmt = $pdo->prepare($sql);
50
+ // idのバインド
51
+ $stmt->bindParam(':id', $id);
52
+ // 実行
53
+ $stmt->execute();
54
+ // main.phpにリダイレクト
55
+ // header("Location: main.php");
56
+ exit;
57
+ } catch (PDOException $e) {
58
+ // エラーメッセージの出力
59
+ echo 'Error: ' . $e->getMessage();
60
+ // 終了
61
+ die();
62
+ }
63
+ }
64
+ ?>
65
+ <!doctype html>
66
+ <html>
67
+ <head>
68
+ <meta charset="UTF-8">
69
+ <link rel="stylesheet" href="../CSS/delete_books.css">
70
+ <title>削除</title>
71
+ </head>
72
+ <body>
73
+ <h1>削除画面</h1>
74
+ <div>削除しました</div><br>
75
+ <a href="main.php">在庫一覧画面に戻る</a>
76
+ </body>
77
+ </html>
78
+
79
+
80
+
81
+
82
+