如何在php中显示外键的真实值?

时间:2019-10-27 08:28:56

标签: php mysql

首先,我要开始使用php语言,但实际上只是开始通过这个小项目来学习它,以创建一个小型电影数据库。

在了解php代码本身之前,有一些背景知识–数据库称为movie_library,它包含3个表,分别称为movie,movie_format和movie_genre。电影具有字段ID,标题,流派和格式(即DVD /蓝光)。 movie_format和movie_genre表的目的是使输入更加容易,因此,我将这些表设置为链接到其各自字段的外键。

下面是相关的代码片段。 $ conn变量只是数据库连接代码。

$result = $conn->query("SELECT * FROM movies") or die("Bad Query: $sql");
echo"<table border='2'>";
echo"<tr><td>ID</td><td>Title</td><td>Genre</td><td>Format</td></tr>";
while($row = mysqli_fetch_assoc($result)) {
    echo"<tr><td>{$row['id']}</td><td>{$row['title']}</td><td>{$row['genre']}</td><td>{$row['format']}</td></tr>";
}

此代码本身在技术上可以正常工作,但是我遇到的问题是,由于我提到的2个表使用外键,因此该表最终看起来像这样:

enter image description here

很明显,类型和格式字段应该是单词而不是数字,所以这是我的问题所在。任何解决此问题的帮助将不胜感激!

编辑: 将代码更改为

$result = $conn->query("SELECT * FROM movies 
LEFT JOIN movie_format ON movies.format = movie_format.id 
LEFT JOIN movie_genre ON movies.genre = movie_genre.id") 

这给了我这个输出:

enter image description here

无论出于何种原因,ID字段和流派字段都是链接的,但是代码与适用于Format的代码几乎完全相同。

0 个答案:

没有答案