前提・実現したいこと
現在、PHPとXAMPPのmysqlを使って、ユーザの登録情報変更の機能を実装しています。
しかし、ユーザ情報をforeachで配列にいれるときに以下のようなエラーが発生します。
ユーザ情報(name、e-mail、id)を取得し、表示することはできます。
解決方法を教えていただきたいです。よろしくお願いします。
【データベースの情報】
テーブル:users
カラム:id, name, email, password
・index.phpのbuttonを押すと、edit.phpに飛びます。
エラーメッセージ
Warning: Undefined array key "id" in edit.php on line 11
ソースコード
######index.php
index.php
1<?php 2 3try { 4 5 $dbh = new PDO($dsn, $user, $password); 6 7 $stmt = $dbh->query('SELECT * FROM users'); 8 9 $result = 0; 10 11 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 12 13} catch (Exception $e) { 14 echo 'エラーが発生しました。:' . $e->getMessage(); 15} 16 17?> 18 19<!DOCTYPE html> 20<!-- 略 --> 21 22<h2>プロフィール</h2> 23 <?php foreach ($result as $user): ?> 24 <p>ユーザー名: 25 <?php echo $user['name'] ?></p> 26 <p>メールアドレス: 27 <?php echo $user['email'] ?></p> 28 <p>パスワード:********</p> 29 <div class="change-button"> 30 <button type="button" onclick="location.href='./edit.php'". <?php echo $user['id'] ?>> 31 変更する 32 </button> 33 <?php endforeach; ?> 34 </div> 35</html>
######edit.php
edit.php
1<?php 2 3try { 4 5 $dbh = new PDO($dsn, $user, $password); 6 7 $stmt = $dbh->prepare('SELECT * FROM users WHERE id = :id'); 8 9//エラーメッセージの11行目 10 $stmt->execute(array(':id' => $_GET["id"])); 11 12 $result = 0; 13 14 $result = $stmt->fetch(PDO::FETCH_ASSOC); 15 16} catch (Exception $e) { 17 echo 'エラーが発生しました。:' . $e->getMessage(); 18} 19 20?> 21 22<!DOCTYPE html> 23<!--略--> 24<h2>プロフィール編集</h2> 25 <form action="update_profile.php" mthod="POST"> 26 <input type="hidden" name="id" value="<?php if (!empty($result['id']))echo h($result['id']); ?>"> 27 <p> 28 <label for="name">ユーザー名</label> 29 <input type="text" name="name" value="<?php if (!empty($result['name'])) echo h($result['name']); ?>"> 30 </p> 31 <p> 32 <label for="email">メールアドレス</label> 33 <input type="email" name="email" value="<?php if (!empty($result['email'])) echo h($result['email']); ?>"> 34 </p> 35 <p> 36 <label for="password">パスワード</label> 37 <input type="password" name="password" value="********"> 38 </p> 39 <p> 40 <label for="password_conf">パスワード確認</label> 41 <input type="password" name="password_conf" value="********"> 42 </p> 43 44 <div class="save-button"> 45 <button type="button">保存する</button> 46 </div> 47 </form> 48</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/24 11:09
2021/08/24 11:11
2021/08/30 06:08
2021/08/30 06:48