前回、商品修正を作成しました。
今回は、商品削除を作成します。
商品削除
商品削除を作成します。
ファイル名:goods_del.php
<記述例>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>商品削除</title>
<style type="text/css">
<!--
table {margin: 10px;padding: 10px;}
table tr:nth-child(even) {background: cornsilk;}
table tr:nth-child(odd) {background: wheat;}
table tr th,td {border-bottom: 1px solid tan; padding: 2px 5px; text-align: center;}
table .right{text-align: right;}
.btn{background:lightsteelblue;border-radius: 10px;border: 3px solid darkslategray;padding: 6px 10px; margin-left: 170px;}
-->
</style>
</head>
<body>
<main>
<section>
<?php
try
{
$dsn='mysql:dbname=fshop;host=localhost';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->query('SET NAMES utf8');
$sql='SELECT id,name,price FROM goods';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$dbh=null;
}
catch(Exception $e)
{
print ' ただいま障害により大変ご迷惑をおかけしております。';
exit();
}
print '<h3>商品削除</h3>';
print '削除する商品を選択してください。<br>';
print '<table><tr>';
print '<td>削除</td><td>商品ID</td><td>商品名</td><td>価格</td></tr>';
while(true)
{
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
if($rec==false){break;}
$id=$rec['id'];
$name=$rec['name'];
$price=$rec['price'];
print '<tr><td>';
print '<form method="post" action="goods_del_chk.php">';
print '<input type="submit" value="削除"></td>';
print '<td class="right"><input type="hidden" name="id" value="'.$id.'">'.$id.'</td>';
print '<td><input type="hidden" name="name" value="'.$name.'">'.$name.'</td>';
print '<td class="right"><input type="hidden" name="price" value="'.$price.'">'.number_format($price).'</form></td>';
}
print '</tr></table>';
?>
<button class="btn" onclick="location.href='goods_ctl.php'">商品管理へ</button>
</section>
</main>
</body>
</html>
<表示例>

これも、商品修正と同じように一覧から
削除する商品を選択します。
商品削除確認
商品削除で選択したデータを削除するのか
再確認します。
ファイル名:goods_del_chk.php
<記述例>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>商品削除チェック</title>
<style type="text/css">
<!--
.del{font-weight: bold; font-size: 20px; color:red; padding: 5px 10px;}
.btn{background:lightsteelblue;border-radius: 10px;border: 3px solid darkslategray;padding: 6px 10px; margin-left: 180px;}
-->
</style>
</head>
<body>
<main>
<section>
<?php
$id=$_POST['id'];
$name=$_POST['name'];
$price=$_POST['price'];
$id=htmlspecialchars($id);
$name=htmlspecialchars($name);
$price=htmlspecialchars($price);
?>
<h3>商品削除チェック</h3>
商品ID:<?php print $id; ?><br>
商品名:<?php print $name; ?><br>
価格:<?php print $price; ?><br>
この商品を削除してよろしいでしょうか。<br>
<form method="post" action="goods_del_end.php">
<input type="hidden" name="name" value="<?php print $name ?>">
<input type="hidden" name="price" value="<?php print $price ?>">
<input type="hidden" name="id" value="<?php print $id ?>"><br>
<input type="submit" class="del" value="削除する">
</form>
<br>
<button class="btn" onclick="location.href='goods_ctl.php'">商品管理へ</button>
</section>
</main>
</body>
</html>
商品削除完了
選択した商品を削除します。
ファイル名:goods_del_end.php
<記述例>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>商品削除完了</title>
<style type="text/css">
<!--
.btn{background:lightsteelblue;border-radius: 10px;border: 3px solid darkslategray;padding: 6px 10px;}
-->
</style>
</head>
<body>
<main>
<section>
<?php
$id=$_POST['id'];
$name=$_POST['name'];
$price=$_POST['price'];
$id=htmlspecialchars($id);
$name=htmlspecialchars($name);
$price=htmlspecialchars($price);
try
{
$dsn='mysql:dbname=fshop;host=localhost';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->query('SET NAMES utf8');
$sql='DELETE FROM goods WHERE id=?';
$stmt=$dbh->prepare($sql);
$data[]=$id;
$stmt->execute($data);
$dbh=null;
}
catch(Exception $e)
{
print ' ただいま障害により大変ご迷惑をおかけしております。';
exit();
}
?>
商品ID:<?php print $id; ?><br>
商品名:<?php print $name; ?><br>
価格:<?php print $price; ?><br>
この商品を削除しました。<br>
<br>
<button class="btn" onclick="location.href='goods_ctl.php'">商品管理へ</button>
</section>
</main>
</body>
</html>
これで一通り商品管理するファイルを作成しました。
商品管理の動作確認をしよう
実際に商品管理の動作確認をしてみましょう。
ここに掲載した、3ファイル
[goods_del.php][goods_del_chk.php][goods_del_end.php]
前回作成した、5ファイル
[goods_ctl.php][goods_list.php]
[goods_mod.php][goods_mod_chk.php][goods_mod_end.php]
を UTF-8ファイルとして保存します。
ちょっとファイルの数が多いので商品追加の3ファイルを
含め11ファイルをZIPファイルにまとめてダウンロードできるようにしました。
PHPでショッピングカートを!goods_ctl01.zip
XAMPPのコントロールパネルを起動し、
[Apache]列の[Start]と[MySQL]列の[Start]
をクリックし[Apache]と[MySQL]とを起動させてください。
ドキュメントルート(DocumentRoot)以下のフォルダに
ファイルをコピーし、[goods_ctl.php]を
実行してみてください。

商品管理画面が表示されました。

[商品一覧]をクリックすると商品一覧が表示されます。

[商品修正]をクリックし、一覧から選択してください。

選択した商品が表示され商品名と価格が編集可能ですので
修正して、[修正する]をクリックしてください。

修正が完了しました。

商品管理に戻って、[商品削除]をクリックし、
削除する商品を選択します。

選択した商品が表示されますので、
[削除する]をクリックします。

商品削除が完了しました。

終わりましたら、XAMPPのコントロールパネルで
[Apache]列の[Stop]と[MySQL]列の[Stop]
をクリックし[Apache]と[MySQL]とを終了させてください。
あとは前の記事で記述した商品追加のファイルも
同じように動作すると思います。
コメント