現在データベースcommentに埋め込んだコメントを、データベースproductの情報に紐付けて表示させるようにさせたいのですが、行き詰まっております。
現在情報・コメントを表示させる画面のファイルには、
//情報(情報の方は既に出力はできております。)// <div class="post"> <?php $pdo=new PDO('mysql:host=******;dbname=******;charset=utf8','******','******'); $sql=$pdo ->prepare('select * from product where id=?'); $sql->execute([$_REQUEST['id']]); foreach ($sql->fetchAll() as $row) { echo '<p>id :', $row['id'], '</p>'; echo '<p>name:', $row['name'], '</p>'; echo '<p>content:', $row['content'], '</p>'; echo '<input type="hidden" name="id" value="', $row['id'],'">'; echo '<input type="hidden" name="name" value="', $row['name'],'">'; echo '<input type="hidden" name="subject" value="', $row['subject'],'">'; } ?> //コメント表示// <?php foreach ($post['comments'] as $comment) { ?> <div class="comment"> <h3><?php echo $comment['name'] ?></h3> <p><?php echo nl2br($comment['content']) ?></p> </div> <?php } ?> </div>
このように書いております。
そして、動きの方のファイルでは、
<?php $pdo=new PDO('mysql:host=******;dbname=******;charset=utf8','******','******'); $st = $pdo->query("SELECT * FROM product ORDER BY id DESC"); $posts = $st->fetchAll(); $st = $pdo->query("SELECT * FROM comment WHERE product_id={$posts['id']} ORDER BY id DESC"); $posts['comments'] = $st->fetchAll(); require '*****.php'; ?>
このように書いております。
そして、
データベースproductの方に
id name contentの情報がいくつか存在していて、
データベースcommentの方には、
no product_id name contentがいくつか存在しております。
これを
データベースproductのid とデータベースcommentのproduct_idで紐付けて、
productの情報に対して、commentのコメントが表示されるようにしたいのですが、どうすればよいでしょうか?
教えてください。
###例
product
id name content
1 A abacd
2 B efghi
3 C jk
comment
no product_id name content
1 2 H zxcv
2 1 F mnbbv
⬇︎
【情報】
*** **** ******
1 A abacd
[コメント]
Fさん
mnbbv
という形です。
ご回答の方よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー