コードは単純で、idを打ち込んだら、登録してあるデータベースからidにある人の情報を取り出すというもので、動くには動きます。
idにないものを打ち込んだら、
this id is not exist
と表示されるようになっています。
ただ、画面をはじめに表示した時点で、(そのページに入った時点で)this id is not existと表示されるのは違和感なので、違う表示がされるように
php
1<?php 2 if($_SERVER['REQUEST_METHOD'] !== 'GET') 3 { 4 ?> 5 <p>please input id</p>
としたのですが、依然とページに入った時点で
this id is not exist
と表示されてしまいます。以下がコードです。
php
1<?php 2 3 $id = ''; 4 5 if(isset($_GET['id'])) 6 { 7 $id = (int)$_GET['id']; 8 } 9 10 $dsn = 'mysql:dbname=sample;host=localhost;charset=utf8'; 11 $user = 'root'; 12 $password = ''; 13 14 try 15 { 16 $dbh = new PDO($dsn, $user, $password); 17 $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 18 $sql = <<<SQL 19 SELECT user.name, user.age, club.club_name, club.count, club.overview 20 FROM user 21 JOIN club ON user.club_id = club.club_id 22 WHERE user.id = :id 23 LIMIT 1 24 SQL; 25 $stmt = $dbh -> prepare($sql); 26 $stmt -> bindValue(':id', $id, PDO::PARAM_INT); 27 $stmt -> execute(); 28 $row = $stmt -> fetch(PDO::FETCH_ASSOC); 29 }catch (PDOException $e) 30 { 31 echo ($e -> getMessage()); 32 die(); 33 } 34 35?> 36 37<html> 38 <head> 39 <meta charset = utf-8> 40 <style type = 'text/css'> 41 .search{float:right;} 42 </style> 43 </head> 44 <body> 45 <div class = 'search'> 46 <p>input the member id</p> 47 <form action = '' method = 'GET'> 48 <input type = 'text' name = 'id'> 49 <input type = 'submit' value = '確認する'> 50 </form> 51 </div> 52 <h1>member data</h1> 53 <?php 54 if($_SERVER['REQUEST_METHOD'] !== 'GET') 55 { 56 ?> 57 <p>please input id</p> 58 <?php 59 }elseif($row === FALSE) 60 { 61 ?> 62 <p>this id is not exist</p> 63 <?php 64 }else 65 { 66 ?> 67 <table boader = "1"> 68 <tr> 69 <th>name</th> 70 <th>age</th> 71 <th>club_name</th> 72 <th>count</th> 73 <th>overview</th> 74 </tr> 75 <tr> 76 <td><?php echo $row['name']; ?></td> 77 <td><?php echo $row['age']; ?></td> 78 <td><?php echo $row['club_name']; ?></td> 79 <td><?php echo $row['count']; ?></td> 80 <td><?php echo nl2br($row['overview']); ?></td> 81 </tr> 82 </table> 83 <?php 84 } 85 ?> 86 </body> 87</html> 88
どなたかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー