解決したいこと
DELETE文をボタンを押してから実行するようにしたい。
PHP初心者です。DELETE文を実行するタイミングの条件式記述で行き詰まってしまいました。
ご教授いただけますと幸いです。
実際のコード
PHP
1 2<?php 3session_start(); 4require('../dbconnect.php'); 5require('../function.php'); 6 7if (isset($_SESSION['join']['user_id'])) { 8 if (isset($_GET['id'])){ 9 }else{ 10 $error['id'] = 'nologin'; 11 } 12}else{ 13 $error['join'] = 'nologin'; 14} 15 16 17//会委員IDと名前取得 18if (isset($_SESSION['join']['user_id'])) { 19$users = $db->prepare('SELECT user.* FROM user WHERE user_id=?'); 20$users->execute(array($_SESSION['join']['user_id'])); 21$user = $users->fetch(); 22}else{ 23$error['join'] = 'error'; 24} 25 26//商品情報取得(単体) 27if (isset($_GET['id'])) { 28$objects = $db->prepare('SELECT * FROM purchase,user WHERE purchase.id=?'); 29$objects->execute(array($_GET['id'])); 30$object = $objects->fetch(); 31} 32// isset($_POST['id']) && 33if (isset($object['id'])) { 34$delete_objects = $db->prepare('DELETE FROM purchase WHERE id=:id'); 35$delete_objects->execute(array(':id' => $_GET['id'])); 36header('location: delete_complete.php'); 37exit(); 38} 39 ?> 40 <!DOCTYPE html> 41 <html lang="ja" dir="ltr"> 42 <head> 43 <meta charset="utf-8"> 44 <title></title> 45 </head> 46 <body> 47 <p><a href="index.php">トップページ</a></p> 48 <?php if(!isset($error)): ?> 49 <p>商品名</p> 50 <p><?php echo $object['purchase_name'] ?></p> 51 <p>値段</p> 52 <p><?php echo $object['price'] ?>円</p> 53 <p>在庫数</p> 54 <p><?php echo $object['stock']?></p> 55 <p>商品説明</p> 56 <p><?php echo $object['item_text'] ?></p> 57 <form class="" action="delete.php" method="post"> 58 <input type="button" name="delete" value="削除する"> 59 </form> 60 <?php elseif (isset($error['join'])) :?> 61 <p><a href="../join/login.php">ログインしてください</a></p> 62 <?php elseif (isset($error['id'])): ?> 63 <p>お手数ですが、処理エラーが発生したため、再度<a href="mypage.php">マイページ</a>から選択し直してください</p> 64 <?php endif; ?> 65 </body>
上記の状態でDELETE文を実行することができているのですが、DELETE文前のIF条件式を以下のように書き換えると実行することができなくなってしまいます。
※書き換え後もエラーは発生していません。
PHP
1// isset($_POST['id']) &&isset($object['id'] 2if (isset($_POST['delete'])) { 3$delete_objects = $db->prepare('DELETE FROM purchase WHERE id=:id'); 4$delete_objects->execute(array(':id' => $_GET['id'])); 5header('location: delete_complete.php'); 6exit(); 7}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/11 10:36
2019/11/11 10:45
2019/11/11 10:52