从三个单独的表中检索数据并在一个php页面上显示它们

时间:2017-05-02 11:43:55

标签: php mysql

感谢您花时间阅读我的问题,希望你们中的一位能指出我正确的方向。

我的问题如下:

在我的MySQL数据库中,我有三个包含数据的表,我的SQL代码是健全的,并在phpMyAdmin SQL测试中进行了测试。我得到了一个我很满意的结果,(SQL)代码是:

SELECT e.idshow, t.c00, e.c00, e.c01, r.rating
FROM episode e 
LEFT JOIN tvshow t ON t.idshow = e.idshow 
LEFT JOIN rating r ON r.media_id = e.idShow 
AND r.media_type = 'tvshow' ORDER BY e.idFile DESC

现在,当我想在php页面上显示此结果时,一个字段为空。

我知道在哪里可以找到错误,因为它是第二个ECHO行,我注意到我有两个c00字段名称。在SQL代码中标记“t。即和r。“需要将它们分开,如t.c00和e.c00。但是当我想将它添加到php代码时,我得到了一个空字段。

PHP代码:

echo '<td>' . $row['idshow'] . '</td>';
echo '<td>' . $row['e.c00'] . '</td>';
echo '<td>' . $row['c00'] . '</td>';
echo '<td>' . $row['c01'] . '</td>';
echo '<td>' . $row['rating'] . '</td>';
echo "</tr>";
}
echo "</table>";

如果我删除e。在e.c00前面,我得到了一个双重输入,显示了两集来自剧集的c00而不是来自tvshow的数据。我如何分离它们仍然在PHP中获得输出。如果需要其他信息,我会提供。

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:0)

始终使用ALIAS来获取附有表名的列名,如:

SELECT e.idshow as col1, t.c00 as col2, e.c00 as col3, e.c01 as col4, r.rating
FROM episode e 
LEFT JOIN tvshow t ON t.idshow = e.idshow 
LEFT JOIN rating r ON r.media_id = e.idShow 
AND r.media_type = 'tvshow' ORDER BY e.idFile DESC

此处as col1是为ALIAS提供的e.idshow,并在php中获取其值:

$row['col1'];

Reference

答案 1 :(得分:-2)

为您的字段创建别名,如下所示:

SELECT e.idshow, t.c00 as mycolumncoo1, e.c00  as mycolumncoo2, e.c01, 

在你的PHP代码中:

echo '<td>' . $row['mycolumncoo1'] . '</td>';
echo '<td>' . $row['mycolumncoo2'] . '</td>';

您可以根据您的要求使用别名,该名称易于阅读。