確認画面のページから送られてきたデータを受け取り、SQL文を組み立てて実行するだけなので、それほど難しくありません。これまでに学んできた知識で十分理解できると思います。
データベースの追加、更新、削除ができるようになれば、いろいろ応用ができるので、このあたりからプログラミングが楽しくなってくる頃です。物作りをしている充実感のようなものが味わえます。
【1】sample104 フォルダをコピーして sample105 フォルダを作成します。
【2】今回は以下のようなファイルの構成になります。
・SampleDB050.php、select.php、update.php、delete.php、insert.php は前回の sample104 と同じものなのでソースコードは省略します。
・update2.php、delete2.php、insert2.php は新規に作成します。
*「\」はWindowsではエンマークのことです。
保存先 C:\phpdev\www\test\sample105
ファイル名 update2.php
<?php
//ファイルを読み込む
require_once("SampleDB050.php");
//データを取得する
$prefCd = $_POST['cd'];
$prefName = $_POST['name'];
// クエリを送信する
$sql = "UPDATE T01Prefecture SET PREF_NAME = '".$prefName."' WHERE PREF_CD = ".$prefCd;
$result = executeQuery($sql);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
<title>更新</title>
</head>
<body>
<h3>更新</h3>
<?= $sql ?><br />
<p><?= $prefName ?> に更新しました。</p>
<a href="select.php" target="_self">全件表示へ</a>
</body>
</html>
保存先 C:\phpdev\www\test\sample105
ファイル名 delete2.php
<?php
//ファイルを読み込む
require_once("SampleDB050.php");
//データを取得する
$prefCd = $_POST['cd'];
// クエリを送信する
$sql = "DELETE FROM T01Prefecture WHERE PREF_CD = ".$prefCd;
$result = executeQuery($sql);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
<title>削除</title>
</head>
<body>
<h3>削除</h3>
<?= $sql ?><br />
<p>PREF_CD: <?= $prefCd ?> を削除しました。</p>
<a href="select.php" target="_self">全件表示へ</a>
</body>
</html>
保存先 C:\phpdev\www\test\sample105
ファイル名 insert2.php
<?php
//ファイルを読み込む
require_once("SampleDB050.php");
//データを取得する
$prefCd = $_POST['cd'];
$prefName = $_POST['name'];
// クエリを送信する
$sql = "INSERT INTO T01Prefecture VALUES(".$prefCd.", '".$prefName."')";
$result = executeQuery($sql);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
<title>追加</title>
</head>
<body>
<h3>追加</h3>
<?= $sql ?>
<p><?= $prefCd.",".$prefName ?> を追加しました。</p>
<a href="select.php" target="_self">全件表示へ</a>
</body>
</html>
【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。
準備ができたら作成したPHPプログラムを実行してみましょう。
【4】ブラウザのアドレスに http://localhost/test/sample105/select.php と入力し、実行します。
【5】全件表示(select.php)の画面が表示されました。
【6】一番最後にあるフォームに「99 ハワイ」と入力し、「追加」ボタンをクリックします。
*数字は必ず半角で入力してください。
【7】追加確認の画面が表示されたら、「追加」ボタンをクリックします。
【8】レコードが追加されました。「全件表示へ」リンクをクリックします。
*動作確認のため、SQL文を表示しています。
【9】レコードが追加されていることが確認できます。
【10】「99 ハワイ」の「更新」リンクをクリックします。
【11】更新確認の画面が表示されたら、「グアム」に変更してから「更新」ボタンをクリックします。
【12】レコードが更新されました。「全件表示へ」リンクをクリックします。
【13】レコードが更新されていることが確認できます。
【14】「99 グアム」の「削除」リンクをクリックします。
【15】削除確認の画面が表示されたら、「削除」ボタンをクリックします。
【16】レコードが削除されました。「全件表示へ」リンクをクリックします。
【17】レコードが削除されていることが確認できます。
【18】データをいろいろ入力して、追加、更新、削除を試してください。
データは「Step1・MySQLの準備」の 13~17 の手順でいつでも復元できるので、安心して操作してください。
【解説】
今回の insert2.php、update2.php、delete2.php はSQL文以外はほとんど同じなのでまとめて説明します。
(1)データベースを使うので、ファイルを読み込んでいます。
require_once("SampleDB050.php");
(2)データを取得する部分です。前のページからはPOSTメソッドで送られています。
$prefCd = $_POST['cd'];
$prefName = $_POST['name'];
(3)SQL文を組み立てている部分です。
$sql = "INSERT INTO T01Prefecture VALUES(".$prefCd.", '".$prefName."')";
$sql = "UPDATE T01Prefecture SET PREF_NAME = '".$prefName."' WHERE PREF_CD = ".$prefCd;
$sql = "DELETE FROM T01Prefecture WHERE PREF_CD = ".$prefCd;
*変数の部分は「" "」の外に出して「.」で連結していますが、これは他のプログラミング言語と同じ書き方にしたいためです。PHPの場合は文字列の中で変数の値を出力する書き方もできます。
SQL文の組み立て方についてはJavaScript初心者入門講座が参考になります。
(4)クエリを送信する部分です。
$result = executeQuery($sql);
今回は戻り値を利用していません。ちなみに追加、更新、削除のSQL文の場合、 $result には成功した場合は TRUE(1) が、失敗した場合は FALSE(0) が代入されています。
(5)確認のため組み立てたSQL文を表示しています。無くてもかまいません。
<?= $sql ?>
(6)「全件表示へ」リンクを表示している部分です。「_self」と指定しているので、同一ウィンドウでページが切り替わります。
<a href="select.php" target="_self">全件表示へ</a>
これでPHPからデータベースを操作する、最も基本的なプログラムができました。フィールド数が増えても基本は同じです。あとは入力されたデータが適正かどうかチェックするような仕組みが必要です。