Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP(内部联接)在SQL中显示多个表的内容_Php_Mysql - Fatal编程技术网

如何使用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]。太棒了!谢谢你,我不知道化名在这种情况下能起作用。不客气。别名的一个用途就是这个。在联接表时,区分具有相同名称的多个列。