我正在尝试创建一个包含客户信息的表/图表。
我正在为客户使用我们的计算机值机时为客户设置“工作订单状态” status_id值。
在另一个表中,我将状态存储为status_id和当前状态类型的status_text。因此,我可以根据工作类型添加更多状态。
我最初使用的是这种Case开关,而case编号将与行内的值相对应。
$sql = "SELECT * FROM workorder";
$result = $conn->query($sql);
while($row = mysqli_fetch_array($result)) {
//case switch
$repair_status_color = "";
$repair_status_text = "";
switch ($row["status_id"]) {
case 0:
$color = "red";
$repair_status_text = "Open";
break;
case 1:
$color = "blue";
$repair_status_text = "Waiting";
break;
case 2:
$color = "blue";
$repair_status_text = "Waiting Parts";
break;
}
echo "<td>" . $repair_status_text . "</td>";
}
我正在尝试从工作订单表中获取值,将其与状态表进行比较,然后从表状态中的status_text回显文本,该文本用于表 workorder < / strong>
我已经尝试过此代码
$sql = "SELECT * FROM workorder INNER JOIN status ON workorder.status_id = status.status_id";
echo $row["status_text"]
但是我不确定我做对了吗。有人注意到我在做什么错吗?
答案 0 :(得分:2)
您没有名为status_text
的列,因此$row['status_text']
会被取消设置(根据您的屏幕截图)。如果有,则必须选择它。您可以使用它来访问它:
SELECT w.*, s.status_name AS 'status_text'
FROM workorder w
INNER JOIN status s
ON w.status_id = s.status_id
或者,如果您有status_text列,则可以执行以下操作:
SELECT w.*, s.status_text
FROM workorder w
INNER JOIN status s
ON w.status_id = s.status_id
您现在可以像这样访问它:
while($row = mysqli_fetch_array($result)) {
echo $row['status_text'];
}