先日、記載した記事でデータベースを取得したデータを一覧にして表示を行なった。
今回は、これらの記事の詳細を見れるのようなプログラムを作成する。
始めに、
新しくprofile.phpとprofile.tpl.phpを用意する。
まず、profile.phpにてデータベースとリンクさせる設定を行う。
<?php
$pdo=new PDO('mysql:host=localhost;dbname=mydb;charset=utf8','root','root');
$message='トレーニングマックス';
$sql='SELECT dbPractice.id,dbPractice.name,dbPractice.bench,dbPractice.deadlft,muscle.model FROM dbPractice
INNER JOIN muscle ON dbPractice.body_id =muscle.body_id
WHERE dbPractice.id=:id';
$statement=$pdo->prepare($sql);
$statement->bindValue(':id',$id,PDO::PARAM_INT);
$statement->execute();
$human=$statement->fetch(PDO::FETCH_ASSOC);
$statement=null;
$pdo=null;
require_once 'view/profile.tql.php';
?>
通常のデータベースの読み込みと違う部分は、全てを取得するのではなく、id一つ分を取得する。よって、sql文が
$sql='SELECT dbPractice.id,dbPractice.name,dbPractice.bench,dbPractice.deadlft,muscle.model FROM dbPractice
INNER JOIN muscle ON dbPractice.body_id =muscle.body_id
WHERE dbPractice.id=:id';//WHERE dbPractice.id=idにより一つ分のid変数を指定する
WHERE dbPractice.id=idにより一つ分のid変数を指定する
そして、
$statement->bindValue(':id',$id,PDO::PARAM_INT);
によって変数idをバインドする。
また、変数idの指定を
if(isset($_REQUEST['id'])){
$id=$_REQUEST['id'];}
とリクエストがあった場合に変数idを定義させる。
そしてデータを取得する際に、
$human=$statement->fetch(PDO::FETCH_ASSOC);
//fetch()で一つのデータを取得
これでデータが取得出来たのであとは、
profile.tpl.php,profile.tql.phpにて
詳細画面の追加と詳細画面へ遷移するボタンの実装を行う
php profile.tpl.php
<?php include('header.tpl.php');?>
<body>
<h1><?php echo $message;?></h1>
<ul>
<li>NAME:<?php echo $human['name']?></li>
<li>BP:<?php echo $human['bench']?></li>
<li>DL:<?php echo $human['deadlft']?></li>
<li>type:<?php echo $human['model']?></li>
</ul>
<p><a href="sql.php">リストに戻る</a></p>
</body>
sql.tpl.php
<?php include('header.tpl.php');?>
<body>
<h1><?php echo $message;?></h1>
<table>
<tr>
<td>名前</td>
<td>BP</td>
<td>DL</td>
<td>bodymake</td>
<td>詳細</td>
</tr>
<?php
foreach($result as $value){?>
<tr>
<td><?php echo $value['name']?></td>
<td><?php echo $value['bench']?></td>
<td><?php echo $value['deadlft']?></td>
<td><?php echo $value['model']?></td>
<td><a href="profile.php?id=<?php echo $value['id']; ?>">詳細はこちらから</a></td>
</tr>
<?php }?>
</table>
</body>
ブログのタイトル一覧から詳細へ見れるような機能が実装出来そうですy(^^)y