お世話になっております。PHP初学者です。
PHPにて、一覧画面でクリックしたタイトルが持つ情報を詳細画面に表示させたいと思っています。
一覧画面にはデータベースに登録されている内容が正常に表示されていますが、詳細画面への受け渡し方が分かりません。
似た質問がいくつかあったのですが、解決に至らなかったため質問させて頂きました。
ソースコードは以下の通りです。
index
1<?php 2//MySQLへ接続 3$pdo = new PDO("mysql:host=localhost;dbname=PHPsample", "name", "password"); 4 5//テーブル取得 6$st = $pdo->query("SELECT * FROM menulist"); 7 8//取得したデータを選択 9$menus = $st->fetchAll(); 10 11require 't_index.php'; 12 13?>
tindex
1<?php require_once('menu.php'); ?> 2 3<!DOCTYPE html> 4<html> 5<head> 6 <meta charset="utf-8"> 7 <title>shop</title> 8 <link rel="stylesheet" type="text/css" href="stylesheet.css"> 9 <link href='https://fonts.googleapis.com/css?family=Pacifico|Lato' rel='stylesheet' type='text/css'> 10</head> 11<body> 12 <?php foreach ($menus as $menu): ?> 13 <h3 class="menu-item-name"> 14 <a href="show.php?name=<?php echo $menu['name'] ?>" > 15 <?php echo $menu['name'] ?> 16 </a> 17 </h3> 18 <?php endforeach ?> 19</body> 20</html>
show
1<?php 2 require_once('menu.php'); 3 4$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS); 5$menu = "select * from menulist where name = ".$name; 6 7?> 8 9<!DOCTYPE html> 10<html> 11<head> 12 <meta charset="utf-8"> 13 <title>Progate</title> 14 <link rel="stylesheet" type="text/css" href="stylesheet.css"> 15 <link href='https://fonts.googleapis.com/css?family=Pacifico|Lato' rel='stylesheet' type='text/css'> 16</head> 17<body> 18 <h3 class="menu-item-name"><?php echo $menu['name'] ?></h3> 19 <p class="menu-item-type"><?php echo $menu['price'] ?></p> 20</body> 21</html>
情報や説明が足りないところがありましたら申し訳ありません。
ご教示いただけますと幸いです。よろしくお願い致します。
追記
失礼致しました。本文に記載させて頂きます。
テーブル作成時のcreate文です。
create table menulist (id int, name varchar(255), price int,image varchar(255),kind varchar(255));
insert into menulist values('1','hoge1','100','/picture/hoge1.jpg','1st');
insert into menulist values('2','hoge2','100','/picture/hoge2.jpg','1st');
PHPのバージョンは7.2です。
回答2件
あなたの回答
tips
プレビュー