簡體   English   中英

僅顯示查詢的ID +行PHP / MySQL

[英]Display only queried ID+row 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放置位置感到$_GET

謝謝 :)

您應該將其附加到查詢中(使用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 ...

首先,您的代碼沒有多大意義,因為您在定義$row之前使用了$row

其次,根本沒有定義$result ,而是應該這樣定義:

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

現在您知道了如何以及在哪里使用$_GET['id']

$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);
   ...
}

之后不要浪費時間進行比較,將其添加到原始查詢中可以節省大量時間

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM