PHPで、Q&Aコーナーのようなものを作成しています。
foreach文を使って、質問に対する回答を表示しようとしています。
回答がデータベースにあるときは問題なく表示できますが、回答がNULLのときは次の二つのエラーが生じます。
0. Warning: Invalid argument supplied for foreach() in
0. Notice: Undefined variable: answers in
そこでググったところ、
foreach ((array)$array as $elem) {
// hogehoge.
}
上述のように、強制的に配列でキャストすればいい、という記事を見つけたので実行してみましたが、やはり次のようなエラーが出ます。
0. Notice: Undefined variable: answers in
コードは次のようになります。
PHP
1<?php 2 $sql ='SELECT * FROM `answers` WHERE `id`=?'; 3 $data = array($_GET['id']); 4 $stmt = $dbh->prepare($sql); 5 $stmt->execute($data); 6 while ($record = $stmt->fetch(PDO::FETCH_ASSOC)) { 7 $answers[] = array( 8 "answer_id"=>$record['answer_id'], 9 "name"=>$record['name'], 10 "id"=>$record['id'], 11 "answer"=>$record['answer'], 12 "created"=>$record['created'] ); 13 } 14?>
PHP
1<h2 class="fh5co-heading">ANSWER</h2> 2 <?php foreach ((array)$answers as $answer_each) { ?> 3 <span><b><?php echo $answer_each["name"]; ?></b></span> / 4 <span><b><?php echo $answer_each["created"]; ?></b></span><br><br> 5 <b><p class="content"><?php echo $answer_each["answer"]; ?></p></b><hr style="border:0;border-top:1px solid;"> 6 <?php } ?> 7
何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/20 00:16