我有两个表一个workorder表,其中有一列名为status\u id,它让我知道订单的状态,如果是未处理的、进行中的或完成的。它只是保存状态的数值。
我还有一个名为status的表,它有一个匹配的status\u id和状态文本。
我有一个下拉式while循环,它会将状态表拉出来并将其回声输出。
我试图让它选择与workorder表状态相关联的下拉选项。
<select name="status" class="form-control input-default" required>
<option selected disabled>Status</option>
<?php
$status_sql = "SELECT * FROM STATUS";
$result_status = $conn->query($status_sql);
while ($status_row = $result_status->fetch_assoc()) {
$status_id = $status_row['status_id'];
$status_name = $status_row['status_text'];
//select status based on value in workorder row
$select_status = (1 == 1)? 'selected="selected"':'';
echo '<option value="' . $status_id . '" '.$select_status.'>'.$status_name . '</option>';
}
?>
</select>
我使用这个php代码作为一个is-equal来回显所选的html标记
我想把两张table合二为一
$sql = "SELECT *, w.status_id as wid, s.status_id as sid
FROM WORKORDER w
INNER JOIN STATUS s
ON w.status_id = s.status_id
";
然后把声明变成这样
$select_status = ( $status_row['sid'] == $status_id = $status_row['status_id'])? 'selected="selected"':'';
我不知道是否有人能帮我解决这个问题。谢谢您!
2条答案
按热度按时间bxfogqkk1#
因为你要加入
ON w.status_id = s.status_id
,这两个值在SELECT *, w.status_id as wid, s.status_id as sid
(另外,您没有使用别名列$status_row['wid']
).看看你把作业和比较逻辑拼凑在一起给自己带来的麻烦:
代码:(演示)
输出:
你应该用这个:demo
输出:
drnojrws2#
尝试此操作,获取要显示的数组中的状态选择并比较您的工单的状态id和状态id