お世話になります。
現在、エンジニア就職用のポートフォリオ作成の一環でtodoリストを作成しています。
そこで、「htmlのフォームで送信したデータをデータベースに挿入して、phpファイルで表示する」という処理が希望通りいかなくて困っっています。
実現したいこと
データベースに挿入したデータを表示したい。
該当ソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>todoリスト</title> 7</head> 8<body> 9 <h1>todoリスト</h1> 10 <form action="index.php" method="POST" nmae="form1"> 11 <p>今日やることを追加してみましょう!</p> 12 <input type="text" name="todo_content"><br><br> 13 <input type="submit" value="送信"><br> 14 </form> 15</body> 16</html>
PHP
1<?php 2require_once "DBconnect.php"; 3try { 4 $pdo->beginTransaction(); 5 $sql = "INSERT INTO todo (todo) VALUES (:todo)"; 6 $stmh = $pdo->prepare($sql); 7 $stmh->bindValue(':todo', $_POST['todo_content'], PDO::PARAM_STR); 8 $stmh->execute(); 9 $pdo->commit(); 10 $pdo->query("SET NAMES utf8"); 11} catch (PDOException $Exception) { 12 $pdo->rollBack(); 13 print 'エラー:' .$Exception->getMessage(); 14} 15 while(1) 16 { 17 $row = $stmh->fetch(PDO::FETCH_ASSOC); //1レコード取り出し 18 if($row == false) //データがもうない場合 19 { 20 break; //ループから脱出 21 } 22 ?> 23 <div class="usermessage"> 24 <p><?=htmlspecialchars($row['todo_content'], ENT_QUOTES)?></p> <!-- データベースのデータを表示 --> 25 </div> 26 <?php 27 } //whileの閉じタグ 28 $pdo = null; 29?>
試したこと
データベースにはしっかり接続が完了していて、htmlのフォームで入力したデータはデータベースに挿入されていることが確認できているので、データの表示方法に問題があるのかと思い、
<p><?=htmlspecialchars($row['todo_content'], ENT_QUOTES)?></p>
の<p></p>を
以上です。
わかる方がいらしたらご回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/29 21:54
2020/06/29 21:57
2020/06/29 21:59
2020/06/29 22:35
2020/07/01 06:38