PHP/MySQL : Get name for specific ID

标签 php mysql

我是 MySQL 的初学者,我正在尝试检索特定 ID 的名称。

这是我的数据库的样子:

我有一个联系人表,其中包含 ID、名字和姓氏。

我想以相同的形式检索特定 ID 的名字和姓氏。

所以我想最终得到一种选项形式,选项值将是每个 ID 的名字。

例如:

<form>
<select name="users">
<option value="">Select a person:</option>
<option value="5"> <?php echo "$first $last" ?> </option>
<option value="10"> <?php echo "$first $last" ?> </option>
<option value="15"> <?php echo "$first $last" ?> </option>
</select>
</form>

这些值是 ID。

和我的 PHP:

<?php   include("connection.php");

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

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");

$i++;
}

?>

在我的实际示例中,我仅获取数据库中最后一个人的名字和姓氏。

那么我如何检索我在表单中分配的特定 ID 的名字和姓氏(?)

最佳答案

这是因为你的 while 循环每次都会覆盖 $first 和 $last 。尝试一下

$users = array();

while ($row = mysql_fetch_assoc($result)) { 
  $users[] = $row;
}

在 HTML 中(已编辑):

<form>
  <select name="users">
    <option value="">Select a person:</option>
    <?php foreach($users as $row): ?>
      <option value="<?php echo $row['id']; ?>"> <?php echo $row['first'] . " " .  $row['last']; ?> </option>
    <?php endforeach; ?>
  </select>
</form>

关于PHP/MySQL : Get name for specific ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542383/

相关文章:

php - 使用 php 将破折号替换为空格

mysql - Node.js 套接字 io 'Error:Client is not defined'

Mysql .NET 连接字符串错误

MYSQL 多表

php - 将 XML 导入 WordPress

php - 如何用引号将 '+' 或 '-' 的字符串括起来?

php - 将 PHP 伪代码转换为 Tornado/Python

php - 浏览器停止/崩溃是否会停止脚本执行?

php - 直接使用另一个查询返回的值进行插入 (PHP)

java - JSP mysql 和 utf8