仅显示查询的ID +行PHP / MySQL

时间:2010-08-19 08:28:03

标签: php mysql

我的数据存储在MySQL表中,其中包含每个新行的auto_increment ID号(唯一)。

我希望用户能够使用$_GET功能获取特定的ID号。

例如。用户加载http://mysite.com/id.php?id=123
页面显示ID号123以及行。

echo $row['id'];
echo "<table>";
echo "<tr> <th>Unit</th> <th>Message</th> <th>Date</th> </tr>";
while($row = mysql_fetch_array( $result )) {

echo "<tr><td>";
echo $row['title'];
echo "</td><td>";
echo $row['description'];
echo "</td><td>";
echo $row['pubDate'];
echo "</td></tr>";

}
echo "</table>";
echo "</center>";

我被困在$_GET位的位置。

谢谢:)

4 个答案:

答案 0 :(得分:3)

您应该将它附加到您的查询中(使用intval以避免SQL注入),如下所示:

// use the id in your WHERE clause, convert it to an integer to avoid sql injections
$query = 'SELECT fields FROM table WHERE id = ' . intval($_GET['id']);

$result = mysql_query($query);
$row = mysql_fetch_row($result);

... do stuff with $row ...

答案 1 :(得分:0)

首先,您的代码没有多大意义,因为您在定义之前使用$row

其次,$result根本没有定义,它应该是,例如:

$id     = intval($_GET['id']);
$result = mysql_query("SELECT FROM table WHERE id = '$id'");

现在您知道如何以及在何处使用$_GET['id']

答案 2 :(得分:0)

$id = $_GET['id'];
$id = mysql_real_escape_string($id);
$query = "SELECT * FROM `Table` WHERE `id`='" . $id . "'";
$res = mysql_query ($query);
$exist = mysql_num_rows($res);
if ($exist) {
   $row = mysqlfetch_assoc($res);
   ...
}

答案 3 :(得分:0)

之后不要浪费你的时间进行比较,你可以通过将它添加到原始查询来节省很多时间

$id = intval($_GET['id']);
$query = "SELECT whatever FROM table WHERE id=$id";