2010/10/28
表示したいid番号をURLパラメータとして送る
<a href="page.php?id=<?php echo $row['id'] ?>">
<?php echo $row['id'] ?>
</a>
index.phpから送られたid番号をDBの検索条件にする
$query = sprintf("SELECT * FROM test_tbl WHERE test_tbl.id = %s", $id);
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>トップページ</title> </head> <body> <?php //DBから、idのみを取得する $connect = mysql_connect('localhost', 'root', ''); $db = mysql_select_db('test', $connect); $query = 'SELECT id, data FROM test_tbl'; $result = mysql_query($query); echo '|'; while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ ?> <a href="page.php?id=<?php echo $row['id'] ?>"> <?php echo $row['id'] ?> </a>| <?php } ?> </body> </html>【page.php】
<!doctype html> <html> <?php //GETでページ番号を渡されているか? if(isset($_GET['id'])){ //安全対策。SQLようにエスケープ $id = mysql_real_escape_string($_GET['id']); //$idは数値か? if(is_numeric($id)){ ?> <head> <meta charset="UTF-8"> <title>個別ページ : <?php echo $id ?></title> </head> <body> <?php //DBから、idに対応したdataを取得する $connect = mysql_connect('localhost', 'root', ''); $db = mysql_select_db('test', $connect); $query = sprintf("SELECT * FROM test_tbl WHERE test_tbl.id = %s", $id); $result = mysql_query($query); while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ ?> <h3><?php echo $row['id'] ?></h3> <p><?php echo $row['data'] ?></p> <?php } } ?> <a href="index.php">トップへ戻る</a> </body> <?php } ?> </html>【test_tbl.sql】
CREATE TABLE `test_tbl` ( `id` int(11) NOT NULL, `data` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); INSERT INTO `test_tbl` (`id`, `data`) VALUES (1, 'a'); INSERT INTO `test_tbl` (`id`, `data`) VALUES (2, 'b'); INSERT INTO `test_tbl` (`id`, `data`) VALUES (3, 'c'); INSERT INTO `test_tbl` (`id`, `data`) VALUES (4, 'd'); INSERT INTO `test_tbl` (`id`, `data`) VALUES (5, 'e');