6/27 [PHP/SQL] データベース(DELETE / UPDATE)
本日の学習内容
[PHP] データベース(登録内容削除)
SQLでデータを削除する(DELETE文)
SQLでテーブルからデータを削除するには?
DELETE FROM `items` WHERE `item_code`=1;
昨日の削除確認画面に続き、
本日はデータ削除を実行する処理を追加します。
商品削除実行(delete_fin.php)
[処理内容]
1. ログイン状態をチェック
2. セッション情報を削除
3. データベース接続
4. SQL実行(テーブルから指定データを削除)
5. 登録商品一覧画面に戻る
[ソース]
<?php require_once(dirname(__FILE__)).'/init.php'; //ログインチェック if(!$_SESSION['login_data']['error']){ header('Location:index.html'); exit; } $item_code=$_SESSION['items_data']['item_code']; //セッション情報(delete_data)を削除 $_SESSION['items_data'] = array(); unset($_SESSION['items_data']); //データベース接続 try{ //DB_HOST localhost $dsn = 'mysql:dbname='.DB_NAME.'; host=localhost; charset=utf8;'; $db_user = DB_USER; //DB_USER $db_pass = DB_PASS;//DB_PASS $dbh = new PDO($dsn,$db_user, $db_pass); }catch (Exception $e){ print 'システムエラーが発生しました'; exit; } $sql = 'DELETE FROM items WHERE item_code =:item_code;'; $stmt = $dbh -> prepare($sql); $stmt -> bindParam(':item_code', $item_code); $stmt -> execute(); $rec = $stmt -> fetch(PDO::FETCH_ASSOC); //登録商品画面に戻る header('Location:item_list.php');
[PHP] データベース(登録内容修正)
SQLでデータを修正する(UPDATE文)
SQLでテーブルのデータを修正するには?
UPDATE items SET item_name=:item_name, item_price=:item_price WHERE item_code=:item_code;
登録内容修正画面(update.php)
<?php require_once dirname(__FILE__).'/init.php'; if(!$_SESSION['login_data']['error']){ header('Location:index.html'); exit; } //変数の初期化 $item_name = ''; $item_price = ''; //可変変数($_GETで受け取った値を取得し変数に設定) foreach($_GET as $k => $v) { $$k = $v; } //データベース接続 try{ //DB_HOST localhost $dsn = 'mysql:dbname='.DB_NAME.'; host=localhost; charset=utf8;'; $db_user = DB_USER; //DB_USER $db_pass = DB_PASS;//DB_PASS $dbh = new PDO($dsn,$db_user, $db_pass); }catch (Exception $e){ print 'システムエラーが発生しました'; exit; } $sql= 'SELECT * FROM items WHERE item_code =:item_code;'; $stmt = $dbh -> prepare($sql); $stmt -> bindParam(':item_code', $item_code); $stmt -> execute(); $rec = $stmt -> fetch(PDO::FETCH_ASSOC); $item_name=$rec['item_name']; $item_price=$rec['item_price']; $_SESSION['items_data']['item_code'] =$_GET['item_code']; ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>登録内容修正</title> </head> <body> <h1>登録内容修正</h1> <a href="logout.php">ログアウト</a> <form action="update_confirm.php" method="POST"> <table border="1"> <tr> <th><label for="item_name">商品名</label></th> <td><input type="text" name="item_name" id="item_name" value="<?php echo $item_name ?>"></td> </tr> <tr> <th><label for="item_price">価格</label></th> <td><input type="text" name="item_price" id="item_price" value="<?php echo $item_price ?>"></td> </tr> </table> <input type="submit" value="確認"><br> </form> <a href="item_list.php">登録商品一覧</a> </body> </html>
登録内容修正確認画面(update_confirm.php)
<?php require_once(dirname(__FILE__)).'/init.php'; //ログイン状態チェック if(!$_SESSION['login_data']['error']){ header('Location:index.html'); exit; } //可変変数($_POSTで受け取った値を取得し変数に設定) foreach($_POST as $k => $v) { $$k = $v; } $item_code=$_SESSION['items_data']['item_code']; //var_dump($_POST); //$error = true; //POSTで受け取った値をSESSIONに設定 foreach($_POST as $k => $v) { $_SESSION['items_data'][$k] = $v; } $_SESSION['items_data']['error'] = $error; ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>新規商品登録確認</title> </head> <body> <h1>新規商品登録確認</h1> <a href="logout.php">ログアウト</a> <table> <tr> <th>商品名:</th> <td><?php echo h($item_name); ?></td> </tr> <tr> <th>価格:</th> <td> <?php echo h($item_price); if($item_price!=="") { echo '円'; } //echo h($item_price_error); ?> </td> </tr> </table> <!--<p><a href="update.php">修正画面に戻る</a>--> <?php echo '<a href="update.php?item_code=' .$item_code.'">戻る</a>'; if($error) { echo '<a href="update_fin.php">修正実行</a>'; } ?> </p> </body> </html>
登録内容修正実行(update_fin.php)
<?php require_once(dirname(__FILE__)).'/init.php'; //require_once 'init.php'; //ログインチェック if(!$_SESSION['login_data']['error']){ header('Location:index.html'); exit; } if(!$_SESSION['items_data']['error']) { header('Location:update.php'); exit; } //SESSIONにある値を取得 foreach($_SESSION['items_data'] as $k => $v) { $$k = $v; } //セッション情報(items_data)を削除 $_SESSION['items_data'] = array(); unset($_SESSION['items_data']); //データベース接続 try{ //DB_HOST localhost $dsn = 'mysql:dbname='.DB_NAME.'; host=localhost; charset=utf8;'; $db_user = DB_USER; //DB_USER $db_pass = DB_PASS;//DB_PASS $dbh = new PDO($dsn,$db_user, $db_pass); }catch (Exception $e){ print 'システムエラーが発生しました'; exit; } //SQL実行(テーブルに値を追加) $sql ='UPDATE items SET item_name=:item_name, item_price=:item_price WHERE item_code=:item_code;'; $stmt = $dbh -> prepare($sql); $stmt -> bindParam(':item_name', $item_name); $stmt -> bindParam(':item_price', $item_price); $stmt -> bindParam(':item_code', $item_code); $stmt -> execute(); header('Location:item_list.php'); exit;