1

データベース内の記事のタイトルを表示するページがあります。これらはリンクであり、クリックすると別のページに移動し、IDに従ってタイトルとコンテンツを表示します。リンクは次のようになります。

        echo '<h2><a href="../../pages/content_page/contents_page.php?id='.$review_id.'">'.$title.'</a></h2>';

それらを表示するページには次のコードがあります。

<?php
while ($row = mysql_fetch_assoc($query)){
    $review_id = $row['review_id'];
    $title = $row['title'];
    $review = $row['review'];
} ?>
<h1><?php echo $title; ?></h1><br /><br />

<p><?php echo $review; ?></p>

しかし、リンクをクリックすると、URLには正しいID番号が表示されますが、表示されるタイトルとコンテンツは、クリックしたすべてのリンクで同じです。IDごとに変更するにはどうすればよいですか?前もって感謝します!

編集:

ここに完全なコード:

<?php

include '../../mysql_server/connect_to_mysql.php';

$query = mysql_query("SELECT `review_id`, `title`, `review` FROM `reviews`");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Posts!</title>

<body>

<?php
while ($row = mysql_fetch_assoc($query)){
    $review_id = $row['review_id'];
    $title = $row['title'];
    $review = $row['review'];
} ?>
<h1><?php echo $title; ?></h1><br /><br />

<p><?php echo $review; ?></p>
</body>
</html>
4

2 に答える 2

1

すべての行をフェッチしています。WHERE条項が必要です。

$review_id = intval($_GET['review_id']);
$resource = mysql_query("SELECT title, review FROM reviews
                         WHERE review_id = $review_id");
if (!$resource) {
    trigger_error(mysql_error());
}
# etc..
于 2012-05-03T18:52:20.543 に答える
1

このようなことを試してください...

<?php
$id = $_GET['id'];
$query = mysql_query("SELECT `title`, `review` FROM `yourtable` WHERE `review_id` = '$id'");

$row = mysql_fetch_assoc($query);
//$review_id = $row['review_id']; **You will not need this because you already have it in the URL
$title = $row['title'];
$review = $row['review'];
?>

<h1><?=$title?></h1><br /><br />
<p><?=$review?></p>

編集:変更:

$query = mysql_query("SELECT `review_id`, `title`, `review` FROM `reviews`");

に:

$query = mysql_query("SELECT `title`, `review` FROM `reviews` WHERE `review_id` = '".$_GET['id']."'");

また...あなたは次のようにいくつかのフィルタリングをしたいと思うでしょう$_GET['id']

preg_match('/^[0-9]{1,9}$/', $_GET['id'])

(IDが数字であると仮定します)

于 2012-05-03T18:56:34.547 に答える