PHPでDB操作(8)
入力するところと一覧表示までを見てきましたが、入力して登録したまではよかったものの、間違っていたというのはよくあることです。そのときに、phpmyadminから変更するのもいいのですが、そこはこのWEBアプリから更新処理をしていきたいものです。
ということで、一覧表示から更新したい歌を選んでそれを表示させてから更新するという流れで処理をしていきます。まずは一覧表示に「編集」のカラムを追加した表を作ります。そのリンク先として、edit.phpを新たに作成します。
<?php
$dsn ='mysql:dbname=<データベース名>;host=localhost';
$user =<ユーザー名>;
$pass =<パスワード>;
// DBへ接続
try{
$id=0;
$result="";
$dbh = new PDO($dsn, $user, $pass);
$sql = $dbh->query("select * from hyakunin_issyu");
while ($record=$sql->fetch(PDO::FETCH_ASSOC)){
$result .='<tr>';
foreach ($record as $column){
$result .= '<td class="column">' . $column . '</td>';
}
$id++;
$result .= '<td class="title"><a href="edit.php?id=' . $id . ' ">編集</a></td>';
$result .= '</tr>';
}
}
catch(PDOException $e){
print("データベースの接続に失敗しました".$e->getMessage());
die();
}
// 接続を閉じる
$dbh = null;
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>百人一首一覧</title>
<style>
.title{height:30px;font-size:large;color:white;background-color:black;}
.column{height:30px;background-color:whitesmoke;}
</style>
</head>
<body>
<table>
<tr>
<th class="title">番号</th><th class="title">作者</th><th class="title">短歌</th><th class="title">編集</th>
</tr>
<?php echo $result; ?>
</table>
</body>
</html>
ichiran.php に編集カラムを追加し、そのリンク先に更新したい一覧表の歌のidをGETメソッドで指定したものとしています。idは単なる数字だけなのでPOSTメソッドとしていません。
idは1から始めていますので、$id=0を入れて初期化し、while文の中で1を足していくようにしています。
次回はそのリンク先のedit.phpを作成します。