Php 如何使用ID作为参数显示SQL数据库中的特定行

Php 如何使用ID作为参数显示SQL数据库中的特定行,php,mysql,Php,Mysql,我有php生成的表,显示数据如下 ID Name 1 xxxx 2 xxxx 我想能够点击ID号并在单独的页面上显示和ID相关的信息 到目前为止,我已经做到了: table.php include("connection.php"); $con=mysql_select_db('fm', $con); $query = "SELECT * FROM table ; $result = mysql_query($query); echo "<table> <

我有php生成的表,显示数据如下

ID  Name
1   xxxx
2   xxxx
我想能够点击ID号并在单独的页面上显示和ID相关的信息

到目前为止,我已经做到了:

table.php

include("connection.php");


$con=mysql_select_db('fm', $con);

$query = "SELECT * FROM table ; 
$result = mysql_query($query);

echo "<table>
 <tr>
<th>ID</th>
<th>Location</th>
</tr>";


while($row = mysql_fetch_array($result)){

echo "<tr><td><a href='send.php?=" . $row['id'] . "'>" . $row['id'] . "</a></td><td>" . $row['location'] . "</td></tr>";  
}

echo "</table>"; 
mysql_close(); 
?>
info.php

include ("connection.php");

  $con=mysql_select_db('fm', $con);

  $id=$_GET['id']; 
  $query = "SELECT * FROM table WHERE id=". $id;
  $result = mysql_query($query) or die (mysql_error());

  echo "<table> 
     <tr>
     <th>ID</th>
     <th>Property</th>
     <th>Location</th>
     <tr>";

     while($row = mysql_fetch_array($result)){
         echo "<tr><td>" . $row['id'] . "</td><td>" . $row['property'] . "</td></td>" . $row['location'] . "</td></tr>";
     var_dump($row);                
 }
             echo "</table>";


  $result = mysql_query($sql);

mysql_close($con);

如果您有任何意见,我们将不胜感激。

这里有一个错误:

echo "<tr><td><a href='info.php?id=" . $row['id'] . "</td><td>" . $row['location'] . "</td></tr>";
在select中使用变量$id之前,如果不处理该变量,则将有未定义的变量$id。并且该变量可用于mysql注入

您在info.php中的以下行中出错:

$result = mysql_query($query, $con);
应该是这样的:

$result = mysql_query($query);

您在table.php中找到了它。

我会像这样更改echo命令

echo "<tr><td>{$row['id']}</td><td>{$row['property']}</td></td>{$row['location']}</td></tr>";

双引号将处理变量的值。

测试代码时会发生什么情况?我只得到表头检查表列名是真的id还是id。id是存储为数字还是文本?我已检查了所有内容。。。我不明白为什么不工作…不要使用旧的mysql_*函数。它们已被弃用,并且不支持数据库的一些功能。不确定“它以红色突出显示所有内容”与什么有关,但您一定犯了错误,忽略了双引号或其他内容。@RST为了在双引号内使用数组变量,它们需要用括号括起来-即{$row['id']},那么它会返回什么?现在看起来怎么样?您可以检查表元素并在这里发布表的实际内容吗?您是否尝试转储$行?除表单id外,所有其他字段都显示数据,为空。。。我还没试过倒垃圾。。我必须承认,我是PHP新手,有些东西对我来说是完全陌生的……好吧,我更新了我的答案。我忘记了$row['id']后面的撇号。试着现在复制它,告诉我它是否有效。好的。。因此,当我单击id时,将显示一个新页面,其中包含正确的链接localhost/xxx/info.php?=1,但它不显示任何信息。。对此有什么想法吗。。谢谢你的帮助。我为你编辑了我的答案,你可以再试一次。同时尝试将var_dump$放在行中;在info.php中循环。如果我的答案对您有所帮助,您可以将其作为正确答案进行检查:-
$result = mysql_query($query);
echo "<tr><td>{$row['id']}</td><td>{$row['property']}</td></td>{$row['location']}</td></tr>";