使用PHP从关系数据库获取数据时出错
问题描述:
我设计了一个简单的关系数据库。当我试图从它抛出一个错误的服务器中的数据:(我跳过了一些代码,使其简单)使用PHP从关系数据库获取数据时出错
这是我使用的SQL语法:
$sql = "SELECT lead.id, lead.name, lead.phone, lead.email, treatment.name, source.name, status.name FROM lead join treatment join source join status on treatment.id = lead.treatment_id and source.id = lead.source_id and status.id = lead.status_id";
这是
echo "
<tr>
<td>".$row["lead.id"]."</td>
<td>".$row["lead.name"]."</td>
<td>".$row["lead.email"]."</td>
<td>".$row["treatment.name"]."</td>
<td>".$row["source.name"]."</td>
<td>".$row["status.name"]."</td>
</tr>";
此代码是给了一个错误,当我改变$row["lead.id"] to $row["id"]
它的工作原理,但我需要:HTML里面使用提到表名,因为我几乎在所有表中都有相同的列名。
有没有办法使用表名来做到这一点?
答
您有在错误的地方,并用不正确的,条件 条件,你应该在条件为每个表使用
$sql = "SELECT
lead.id
, lead.name
, lead.phone
, lead.email
, treatment.name
, source.name
, status.name
FROM lead
join treatment on treatment.id = lead.treatment_id
join source on source.id = lead.source_id
join status on status.id = lead.status_id";
和索引尝试使用别名 避免表名和点符号
$sql = "SELECT
lead.id as lead_id
, lead.name as lead_name
, lead.phone as lead_phone
, lead.email as lead_email
, treatment.name as treatment_name_
, source.name as source_name
, status.name as status_name
FROM lead
join treatment on treatment.id = lead.treatment_id
join source on source.id = lead.source_id
join status on status.id = lead.status_id";
我已经尝试过你的解决方案,但是当我使用这个'$ row [“lead.id”]' – Jayprakash
@Jayprakash时,它仍然会说'Undefined index:lead.id'。 ia已经用建议更新了答案 – scaisEdge
你太棒了!有效。谢谢 – Jayprakash