実現したいこと
HTMLのFormタッグで作ったFormにデータを入力して、
もしSQLに値があれば、指定された1レコード分の資料をWEBブラウザに反映して欲しいです。
発生している問題・エラーメッセージ
Warning: Undefined array key "id" in C:\xampp\htdocs\...\search.php on line 3 Warning: Undefined array key "user_name" in C:\xampp\htdocs\...\search.php on line 4
試したこと
- INSERT文でデータをデータベースに入力することは問題ないです。
- SELECT文でデータを""全部""WEBブラウザに表示するのは問題ないです。
➡しかし、WHERE文を足したら、ERRORが出てきました。なんかWHERE文後ろに付けている値が取得できなさそうです。
3. 実はもともと下記LINKの内容を真似して作りましたが、ERRORが出てきました...
https://www.sejuku.net/blog/104455
該当のソースコード <form.php>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="./search.php" method="post" enctype="multipart/form-data"> ID:<input type="text" name="id2"><br> <input type="submit" value="検索"> </form> <?php include('./search.php') ?> <table> <tr> <th>ID</th> <th>User Name</th> </tr> <?php foreach ($data2 as $row) { ?> <tr> <td><?php echo $row['ID']; ?></td> <td><?php echo $row['member_name']?></td> </tr> <?php }?> </table> </body> </html>
該当のソースコード <search.php>
<?php $id2 = $_POST['id2']; $user_name2 = $_POST['user_name']; $dbName = "mysql:host=localhost;dbname=test;charset=utf8"; $userName = "root"; try{ $db = new PDO($dbName, $userName); } catch (\Throwable $th){ exit(); } $sql2 = "SELECT * FROM user_list where ID=".$id2; $sth2 = $db -> prepare($sql2); $sth2 -> execute(); $data2 = $sth2->fetchall(); return $data2;
補足情報(FW/ツールのバージョンなど)
- HTMLとPHPを使っています。
- WEBブラウザはGOOGLE Chrome

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/10 23:56 編集
2022/10/26 15:21