MySQLを使って管理画面を作る練習をしています。
INSERT,SELECT,DELETEと学習したのですがUPDATEだけうまくいってません。
複数のカラムを更新するサンプルが探せずコードがおかしいかもしれません。
前提・実現したいこと
一覧からボタンでデータの詳細画面を表示(省略)
↓
受け取ったIDからデータを出してフォームから更新内容を送る
↓
受け取った更新内容をデータベースに登録
##データベースnews
|ID|日付|タイトル|内容|
|:--|:--:|--:|
||||
発生している問題・エラーメッセージ
エラー等は出ずに値も最後まで送られていますが更新だけできていません。
該当のソースコード
##update.php
<?php include('mysql_try.php'); //接続 ?> <?php $id = htmlspecialchars($_GET['id'], ENT_QUOTES, 'UTF-8'); echo $id; if(isset($_REQUEST['id']) && is_numeric($_REQUEST['id'])) { $id = $_REQUEST['id']; $upd = $dbh->prepare('SELECT * FROM news WHERE id=?'); $upd->execute(array($id)); $up = $upd->fetch(); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>UPDATE</title> </head> <body> <form name="update" action="updateend.php?id=<?php print($up['id']); ?>" method="post"> <div> <dl> <dt>日付</dt> <dd><input type="date" name="date" value="<?php echo $up['date']; ?>" required></dd> </dl> <dl> <dt>タイトル</dt> <dd><input type="text" name="title" value="<?php echo $up['title']; ?>" required></dd> </dl> <dl> <dt>内容</dt> <dd><textarea name="content" cols="30" rows="10" required><?php echo $up['content']; ?></textarea></dd> </dl> <input type="submit" value="送信"> <button type="button" onclick="history.back()">戻る</button> </div> </form> </body> </html>
##update_end.php
<?php include('mysql_try.php'); //接続 $stmt = $dbh->prepare('UPDATE news SET date=?, title=?, content=? WHERE id=?'); $stmt->execute(array($_POST['date'], $_POST['title'], $_POST['content'], $_POST['id'])); echo $_POST['date']; echo $_POST['title']; echo $_POST['content']; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>UPDATE_END</title> </head> <body> 変更しました。 <a href="ichiran.php"><<一覧に戻る</a> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/06 03:02