php - 包含数据库中值的下拉菜单

标签 php mysql database drop-down-menu

我想创建一个名为“房间”的下拉菜单,它显示数据库中存储的可用房间。

index.php 显示了一个包含一些设备的表以及存储设备的房间的名称。 (SQL 查询:SELECT deviceID, deviceName, roomName FROM device LEFT JOIN room ON device.roomID = room.roomID),roomID 是房间表中的主键,device.roomID 是设备表中的外键。

用户应该能够更改设备的房间,我通过每个设备旁边的链接来做到这一点,该链接将我重定向到表单。 在此表单中,我希望下拉菜单将当前房间显示为默认值,并将所有可用房间显示为选项。

$sql1 = "SELECT roomname FROM device LEFT JOIN room ON device.roomID = room.roomID WHERE deviceID='$id'";
$sql7 = "Select distinct roomname, roomID from room";
require_once ('config.php');
$db_link = mysqli_connect (MYSQL_HOST, 
                           MYSQL_USER, 
                           MYSQL_PW, 
                           MYSQL_DATABASE);
        mysqli_set_charset($db_link, 'utf8');
     $db_erg = mysqli_query( $db_link, $sql1 );
     if ( ! $db_erg )
{
  die('Error: ' . mysqli_error($db_link));
}
$db_erg2 = mysqli_query( $db_link, $sql7);
echo 'Room:';
echo '</br>';
echo '</br>';
echo '<select name="room>';

while($row = mysqli_fetch_array($db_erg2, MYSQL_ASSOC)) 
{
  echo '<option value="' . $row['roomID'] .'"selected="selected">' . $row['roomname'] . '</option>';
}

while($row = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) 
{
  echo '<option value="' . $row['roomID'] . '">' . $row['roomname'] . '</option>';
  

}

我添加了一个按钮,用于创建 SQL 查询以使用新的 roomID 更新设备表。 但是,只有当我在下拉菜单中更改房间时,roomID 才会传递到查询中。如果没有,sql 查询会执行以下操作:“UPDATE device blaabala SET device.roomID = ""; 空白 roomID 会导致“无法添加或更新子行:外键约束失败”

当我不换房间时,我希望它也能通过 (这里我必须提到,房间稍后会包含盒子,当我更换盒子时,我不想每次都更换房间。)

希望有人理解我的问题,因为英语不是我的母语。 提前致谢

最佳答案

<option value="<?=$row['roomID']?>"> <?=$row['roomname']?></option>
  • 查询错误

    这是因为您强制执行了引用完整性,但您违反了它。 您正在尝试使用无效的外键(不存在的键)添加或更新记录。

  • 关于php - 包含数据库中值的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29388264/

    相关文章:

    javascript - ajax serializearray 不输出任何值

    php - &lt;input type ="file"/> 将数据发布为...?

    php - 如何获取数据库中特定行的相应 user_id(自动递增)值?

    php - MySQL 将两个不同的字符串视为相同

    php - PDO INSERT 语句错误

    mysql - 在 Django 项目之外使用 Django ORM,“MySQL 已经消失”

    database - Wix 可以默默地不覆盖数据库吗

    mysql - MYSQL MIN/Max/Avg 计算中考虑的值标准

    MySQL INSERT ...从 1 个表中选择到 2 个表中

    SQL Server INSERT INTO 带 WHERE 子句