感谢您花时间阅读我的问题,希望你们中的一位能指出我正确的方向。
我的问题如下:
在我的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中获得输出。如果需要其他信息,我会提供。
提前感谢您提供任何帮助
答案 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'];
答案 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>';
您可以根据您的要求使用别名,该名称易于阅读。