phpsql_メモを編集する

07メモを編集する

では新たにindex.phpと同じ階層に「edit.php」を作成してください。

memo_php
├── css
│   └── style.css
├── index.php
├── delete.php
├── edit.php // 追加
├── update.php // 追加
├── insert.php
├── select.php
└── dbConnection.php

作成できたら以下のコードをコピーしましょう。

edit.php

<?php
include './dbConnection.php';
if (isset($_POST["edit_id"])) {
    $edit_id = $_POST["edit_id"];
    /*sql文*/
    $sql = "SELECT * FROM memo WHERE id = '$edit_id'";
    $memo_info = $dbh->query($sql)->fetch();
}
?>

<!doctype html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>メモ帳</title>
    <link rel="stylesheet" href="./css/style.css" type="text/css">
</head>
<body>
    <div class="container">
        <div class="memo_area">
            <div class="memo_form">
                <h2>メモを編集</h2>
                <form method="post" action="update.php">
                    <input type="hidden" name="memo_id" value="<?php echo $memo_info["id"] ?>">
                    <input class="memo_text" type="text" name="edit_body" value="<?php echo $memo_info["body"]?>">
                    <input type="submit" value="編集">
                </form>
            </div>
        </div>
    </div>
</body>
</html>

index.php

<?php
    include './dbConnection.php';
    // ここに追加
    include './edit.php';
    include './delete.php';
    include './insert.php';
    include './select.php';

index.php

<div class="edit_form">
     <form action="edit.php" method="post">
         <input type="hidden" name="edit_id" value="<?php echo $memo['id'] ?>">
         <input type="submit" value="編集">
     </form>
</div>

update.php

<?php
include './dbConnection.php';
// 対象のメモを上書きする
if (isset($_POST["memo_id"])) {
    $body = $_POST["edit_body"];
    $memo_id= $_POST["memo_id"];
    /*sql文*/
    $sql = "UPDATE memo SET body = '$body' WHERE id = '$memo_id'";
    /*bindValue関数でバインドする*/
    $result = $dbh->prepare($sql);
    $result->execute();
}

/*処理が完了したら index.php にリダイレクト*/
header("Location: index.php");
/*リダイレクト後にスクリプトの実行を停止*/
exit;

index.php

<?php
    include './dbConnection.php';
    // ここに追加
    include './update.php';
    include './edit.php';
    include './delete.php';
    include './insert.php';
    include './select.php';

まず<input type="hidden" name="edit_id" value="<?php echo $memo['id'] ?>">の部分ですが、先ほどと同じく編集対象のメモのIDを取得しています。

そして、取得したIDを<form action="edit.php" method="post">でedit.phpにデータを送信しています。

"UPDATE memo SET body = '$body' WHERE id = '$memo_id'";ではSQLのUPDATE文を用いてbodyを上書きしています。

Git

// 前のcommitからの差分を確認
git diff
git add .
git commit -m "追加"

ここでは加えて、Githubにリモートリポジトリを作成して、そこにpushをしてもらいます。

リモートリポジトリの作成方法とpushの方法は、Gitの教材を参考にしてください。

リモートリポジトリの名称は自由につけてくださってかまいませんが、「kadai-phpsql」などの教材のリポジトリか分かりやすい名称がおすすめです。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です