使用同一行的 id 从数据库中获取名称.在 PHP 中


Get a name from a database using the id of the same row. In PHP

我对php很陌生,我想尝试使用ID号从数据库中获取名称。例如 id=1 名称=测试我想说当 id=1 时,让名称=测试我以为这会做到,我一直在尝试自己制作 php。而不是遵循特定的教程。我假设我想做的事情很常见,但我无法理解我的代码哪里出了问题。

$id = "1"; // later i will add it so this is defined by the link you click on
$firstname = mysql_query("SELECT firstname FROM $info_table WHERE id = $id");
$secondname = mysql_query("SELECT secondname FROM $info_table WHERE id = $id"); 
$name = $firstname $secondname;`
echo name;

表是 $info_TABLE,然后名字和第二个名字部分是列。这是应该的还是不应该的?

任何人都帮助澄清我的困惑。

您可以使用单个查询从表中选择多个字段,如下所示:

$records = mysql_query("SELECT `firstname`, `lastname` from `$info_table` WHERE id = $id");
while ($row = mysql_fetch_array($records)) {
     echo "Name: $firstname $lastname";
}

但是,请记住,mysql函数集已被弃用,这意味着如果您使用它们,您的代码可能无法在未来版本的 PHP 中使用。因此,为了确保您的代码是面向未来的,我会研究 mysqli* 函数集或 PDO。

最后一件事,您上面提供的代码不提供针对SQL注入的保护,如果您接受用户的任何值以用于SQL查询,这一点很重要。

您可以通过执行以下操作来选择所有记录:

$firstname = mysql_query("SELECT * FROM $info_table WHERE id = $id");
while($row = mysql_fetch_array($firstname)) {
echo $row['firstname'] . $row['secondname'];
}

使用 mysqli_* 而不是 mysql_*。

如果你要静态地做到这一点,那么Moeed Farooqui的答案是可以的,但是如果你正在寻找动态的,你必须在任何事件上动态生成id。

例如链接(如您所说):

<a href="yourlink.php?id=<?php echo $id; ?>">click</a>

然后在您的链接上获取此 ID.php您的代码如下所示:

$id=$_GET['id'];
$firstname = mysql_query("SELECT firstname FROM $info_table WHERE id = $id");
$row=mysql_fetch_array($firstname);
echo $row['firstname'];