72212


update.php（コード①）で、データベースの内容表示+変更内容入力フォーム+登録ボタンを表示して、表示された内容を変更するところまではできます。

しかし、登録を押しても画面が切り替わらず変更内容も反映されません。  
update_do.php（コード②）に変更内容がPOSTを利用して送信されるような形にしたいのですが、送信できていないようです。  
エラー表示は特にないのでどこがおかしいのか教えてください。

初めての質問なので、ほかになにか必要な情報があればお申し付けください。  
よろしくお願いします。

引用元:  
書籍「よくわかるPHPの教科書」

**update.php**

[code]

    <?php require('dbconnect.php'); ?>
    <!doctype html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="css/style.css">
    
    <main>
    <h2>practice</h2>
    <meta http-equiv="content-type" charset="utf-8">
    
    <?php
    if (isset($_REQUEST['id']) && is_numeric($_REQUEST['id'])) {
        $id = $_REQUEST['id'];
    
        $memos = $db->prepare('SELECT * FROM memos WHERE id=?');
        $memos->execute(array($id));
        $memo = $memos->fetch();
    }
    ?>
    
    <from action="update_do.php" method="post">
        <input type="hidden" name="id" value="<?php print($id); ?>">
        <textarea name="memo" cols="50" rows="10"><?php print($memo['memo']); ?></textarea><br>
        <button type="submit">登録する</button>
    </from>
    </main>
    
[/code]

**update_do.php**

[code]

    <?php require('dbconnect.php'); ?>
    <!doctype html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="css/style.css">
    
    <main>
    <h2>practice</h2>
    <meta http-equiv="content-type" charset="utf-8">
    
    <?php
    $statement = $db->prepare('UPDATE memos SET memo=? WHERE id=?');
    $statement->execute(array(!empty($_POST['memo']), (!empty($_POST['id']))));
    ?>
    <p>メモの内容を変更しました。</p>
    <p><a href="index.php">戻る</a></p>
    </main>
    
[/code]


CC BY-SA 4.0
2020-11-24T18:07:15.353
72185
2020-11-26T01:15:32.043
2020-11-25T12:48:14.363
3060
42859
question
php mysql pdo
PDOでPHPからMySQLに接続。PHPでDBの内容を変更したいのですがうまくいきません。


`form` ではなくて`from`になっているため、フォームとして送信されないのだと思います。  
タグは正しく`form`を利用しましょう  
これでページ遷移ができるようになると思います。


CC BY-SA 4.0
2020-11-26T01:15:32.043
72212
2020-11-26T01:15:32.043
22665
72185
answer