お店一覧ページを作り、それぞれのお店に「詳しくはこちら」ボタンをつけ、個別の詳細ページを作りたいです。
list.phpで一覧を作り
detail.phpで個別の詳細を掲載
テーブル
テーブル名shops
shop_id | name | tel | open | close |
---|---|---|---|---|
1 | お店1 | 000-000-0001 | 10:00-11:00 | 月曜日 |
list.php
php
1 <?php 2 foreach ($db->query('SELECT * FROM shops') as $row){ 3 ?> 4 <section class="shop-tile shadow-radius border-ocher"> 5 <h2><?php echo $row['name'] ?></h2> 6 <table> 7 <tr> 8 <th>営業時間</th> 9 <td><?php echo $row['open'] ?></td> 10 </tr> 11 <tr> 12 <th>定休日</th> 13 <td><?php echo $row['close'] ?></td> 14 </tr> 15 </table> 16 <a class="btn tel-btn" href="tel:<?php echo $row['tel'] ?>">電話する</a> 17 <a class="btn" href="detail.php?id=<?php echo $row['shop_id'] ?>"><?php echo $row['name']?></a> 18 </section> 19 <?php } ?>
foreachで登録しているお店の一覧を表示。
下部にあるaタグでそれぞれのページに移動させようとしています。
php
1<a class="btn" href="detail.php?id=<?php echo $row['shop_id'] ?>"><?php echo $row['name']?></a>
detail.php
一覧のaタグからこちらに移動し詳細をを表示させようとしています。
php
1 2 <?php 3 $sql = $db->prepare('SELECT * FROM shops WHERE shop_id=?'); 4 $sql->execute([$_REQUEST['shop_id']]); 5 foreach($sql as $row){ 6 ?> 7 8 <h1 class="border-bottom-ocher">test<?php echo $row['name']?></h1> 9 <table class="system"> 10 <tr> 11 <th>営業時間</th> 12 <td><?php echo $row['open'] ?></td> 13 </tr> 14 <tr> 15 <th>定休日</th> 16 <td><?php echo $row['close'] ?></td> 17 </tr> 18 </table> 19<?php } ?>
しかし、結果では表示してもらえません。
このとき、urlは detail.php?id=[shop_id]となってくれています。
問題があるのはdetail.phpだと思うのですが、どのようにしたらテーブルからデータをとってきてくれるのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 15:48