Php 如何使用ID作为参数显示SQL数据库中的特定行
我有php生成的表,显示数据如下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> <
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>";