如何使用PHP(内部联接)在SQL中显示多个表的内容
给定以下代码:如何使用PHP(内部联接)在SQL中显示多个表的内容,php,mysql,Php,Mysql,给定以下代码: <?php include "connect.php"; $query = "select d.Name,d.Image,d.Main_Style,g.ID,g.Name from dj d inner join genres g on g.ID=d.Main_Style order by d.Name"; $exec = $mysql->query($query) or die("Erreur"); $n = $exec->num_rows;
<?php
include "connect.php";
$query = "select d.Name,d.Image,d.Main_Style,g.ID,g.Name from dj d inner join genres g on g.ID=d.Main_Style order by d.Name";
$exec = $mysql->query($query) or die("Erreur");
$n = $exec->num_rows;
if($n > 0)
{
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html><table>';
for($i=0;$i<$n;$i++)
{
$row = $exec->fetch_array();
//echo '<tr><td></td><td><a href='DJ.php?id=$row[ID]'>$row[Name]</a></td><td>$row[Main_Style]</td></tr>';
echo "<tr><td><img src=\"$row[d.Image]\" width=\"100\" height=\"100\"/></td><td><a href='DJ.php?id=$row[ID]'>$row[Name]</a></td><td>$row[Main_Style]</td></tr>";
}
echo '</table></html>';
}
include "disconnect.php";
?>
正如您可以看到的,我在php代码$row[d.image]
中使用它来显示表d中image
的内容,但是有一个错误,如何解决这个问题$row[Name]
和其他变量工作正常MySQL查询中的字段“d.Image”没有传输到结果,表名被删除
MySQL返回的结果中的相应列仅命名为“Image”
要解决您的问题,请将
$row[d.Image]
更改为简单的$row[Image]
,就像您处理其他字段(ID、Name和Main_样式)一样。啊,好的,这似乎可以正常工作,但是,如果我从两个不同的表中有两个同名的列怎么办?如果结果中有两个同名的列,则应该在查询中使用别名(例如,d.Image作为Image1,g.Image作为Image2)。然后可以在php代码中使用$row[Image1]和$row[Image2]。太棒了!谢谢你,我不知道化名在这种情况下能起作用。不客气。别名的一个用途就是这个。在联接表时,区分具有相同名称的多个列。