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');