[PHP] 목록에서 하나의 데이터를 추출하는 방법

9687 단어 PHP7SQLPHP
요 전날, 기재한 기사로 데이터베이스를 취득한 데이터를 일람으로 표시를 행했다.

이번에는 이러한 기사의 세부 사항을 볼 수있는 같은 프로그램을 만듭니다.

첫째,
새로 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로 1분의 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

좋은 웹페이지 즐겨찾기