php - MySQL 选择异常

标签 php mysql sql

我有一个表格可以允许更新为项目分配的位置。

位置菜单列出了所有尚未分配的位置。但是,我希望在列表中选择正在编辑的项目(因此分配给该项目)的位置。

问题是如何显示所有未分配给项目的位置,并让正在编辑的项目的位置显示为选定的?

请注意,位置表分配列设置为 N(未分配)或 Y(分配给项目)。

$query_pos = mysql_query("SELECT * FROM position WHERE SUBSTRING(position, 1, 1) = '$room' AND allocated = 'N' ORDER by position ASC");
while ($row_pos = mysql_fetch_assoc($query_pos)){
    if($row_pos['position'] == $position) {
                  echo "selected='selected'";
                }
echo "<option value='" .  $row_pos['position'] . "'>" . $row_pos['position'] . "</option>";
}

最佳答案

将查询更改为 UNION 解决了​​问题:

$query_pos = mysql_query("(SELECT * FROM position WHERE position = '$position') UNION (SELECT * FROM position WHERE SUBSTRING(position, 1, 1) = '$room' AND allocated = 'N' ORDER by position ASC)");
while ($row_pos = mysql_fetch_assoc($query_pos)){
echo "<option value='" .  $row_pos['position'] . "'>" . $row_pos['position'] . "</option>";
}

关于php - MySQL 选择异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900472/

相关文章:

php - Silverstripe 管理页面未出现

mysql - 需要有关 MySQL 查询的帮助

mysql 查询两个表

mysql - 如何聚合不同粒度级别的加权平均值字段?

php - Codeigniter:单击提交按钮后没有记录保存在 mysql 数据库中

php - PDO OCI8 2.0.0,在 centos linux 6.5 上编译时出错

php - 使用 For 循环在表中打印多维数组

PHP MySQL 更新集

sql - 在应用程序中排序与在数据库中排序

sql - SQL数据行作为列