0

我对 php 很陌生,我想尝试使用 id 号从数据库中获取名称。例如 id=1 name=test 我想说什么时候 id=1 make name=test 我以为这样就可以了,我一直在尝试自己编写 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 然后 firstname 和 secondname 部分是列。这是应该的还是不应该的?

任何人都可以帮助消除我的困惑。

4

3 回答 3

1

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

$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 查询中使用,这一点很重要。

于 2013-09-08T11:38:11.843 回答
0

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

$firstname = mysql_query("SELECT * FROM $info_table WHERE id = $id");
while($row = mysql_fetch_array($firstname)) {
echo $row['firstname'] . $row['secondname'];
}
于 2013-09-08T11:28:15.077 回答
0

使用 mysqli_* 而不是 mysql_*。

如果您要静态执行此操作,那么 Moeed Farooqui 的答案是可以的,但如果您正在寻找动态,则必须在任何事件上动态生成 id。

例如链接(如你所说):

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

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

$id=$_GET['id'];

$firstname = mysql_query("SELECT firstname FROM $info_table WHERE id = $id");
$row=mysql_fetch_array($firstname);
echo $row['firstname'];
于 2013-09-08T11:34:56.930 回答