読者です 読者をやめる 読者になる 読者になる

リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

10-7.PHPからデータを操作する⑦データの削除

今日は、データの削除処理を行います。
削除は、リンクをクリクしてデータ番号と動作モードを送信して行います。

まず削除画面を作成し、データを削除するコードを書きいていきます。

1-1. 削除画面の作成


どのデータを削除するかリンクをクリックして決めることにします。
リンクを表示するページを「delete.html」とします。

◎delete.html コード


<html>
<head>
<title>テキスト送信のテスト</title>
<META http-equiv="Content-Type" content="text/html;charset=utf8">
</head>

<BODY bgcolor="#FFFFFF" text="#000000">
削除番号をクリックしてください。
<table width="150" border="1" cellspacing="0" cellpadding="8">
<tbody>
<tr><th>番号</th></tr>
<tr><td align="center">
<a href="list.php?action=delete&id=1">[1]</a></td></tr>
   <tr><td align="center">
<a href="list.php?action=delete&id=2">[2]</a></td></tr>
<tr><td align="center">
<a href="list.php?action=delete&id=3">[3]</a></td></tr>
<tr><td align="center">
<a href="list.php?action=delete&id=4">[4]</a></td></tr>
<tr><td align="center">
<a href="list.php?action=delete&id=5">[5]</a></td></tr>
<tr><td align="center">
<a href="list.php?action=delete&id=6">[6]</a></td></tr>
</tbody>
</table>
</body>
</html>

<a href="list.php?action=delete&id=数字"></a>というコードが肝です。?の以下に「キー=データ」の形式を記述します。追加する場合は&を挟み同じ形式で追加していきます。
?のあとのaction=deleteが動作モードで、&のあとのid=数字に、削除する番号を記載します。
表示してみるとこうなります。
f:id:taro-blog2323:20161003225906p:plain



1-2. データ削除


データを削除処理を行う「list.php」を作ります。
※今回はコードをつくるだけで、次回、この「list.php」に検索、挿入、更新、削除を連携させたコードに仕上げていきます。

◎list.php コード


<?php
require_once("MYDB.php");
$pdo = db_connect();

if(isset($_GET['action'])) && $_GET['action'] == 'delete' &&
$_GET['id'] > 0){
try{
$pdo->beginTransaction();
$id = $_GET['id'];
$sql = "DELETE FROM member WHERE id = :id";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(':id', $id, PDO::PARAM_INT);
$stmh->execute();
$pdo->commit();
print "データを". $stmh->rowCount(). "件、削除しました。
";
}catch (PDOException $Exception){
$pdo->rollBack();
print "エラー:" . $Exception->getMessage();
}
}

今までと同じで、データベースへの接続処理をMYDB.phpから読み込んだdb_connect関数で実行します。
if文で指定した条件のときにだけ、削除処理を行います。


「 (isset($_GET['action']))」で、値の存在を確認し、「$_GET['action'] == 'delete' 」で値の存在をチェックしています。
「$_GET['id'] > 0)」で、番号が1以上の時という意味になり、すべての条件がTRUEのときに削除処理が実行されます。

さてさて、明日やったら10章おわりです。
明日は、総まとめで、今まで作ったコードを組み合わせて、ひとまとめにしていきます。

がんばるぞーーー