我有一个包含演员,角色和电影信息的数据库。 在HTML页面上,我让用户输入一个actor的名字和姓氏。
然后将此表单提交到我的PHP页面,在该页面中查看我的数据库,并向用户提供包含以下信息的3列html表:演员所在的电影名称,演员扮演的角色以及年份电影。
所有这些信息都在单独的数据库表中。每个表的外观示例如下:
演员表包含:
以下列方式存储'id','first_name','last_name'和'gender' - (933,'Actor','Name','M')
角色表包含:
'actor_id','movie_id','角色以下列方式存储 - (16844,10920,'角色')
电影表包含:
'id','name','year','rank'以下列方式存储 - (306032,'Snatch。',2000,7.9)
我必须查看并将所有数据关联到表格中。这就是我到目前为止所做的:
{{1}}
我的解决方案有效 - 只是一种平庸的做法
答案 0 :(得分:0)
您尚未指定变量$firstname
和$lastname
。除此之外,每次if
条件都是错误的。
if ($row['first_name'] = $firstname && $row['last_name'] = $lastname) {
应该是:
if ($row['first_name'] == $firstname && $row['last_name'] == $lastname) {
同时检查您要对echo $row['first_name'][0];
请注意,mysql_*
函数已弃用,因此您最好使用mysqli
或PDO。
修改强>
您可以使用以下查询选择在电影中播放的所有演员。您可以调整以仅采用更改SELECT
子句或使用WHERE
。
$sql = "
SELECT aa.id AS actor_id, aa.first_name, aa.last_name, cc.name, cc.year
FROM actor AS aa
INNER JOIN role AS bb
ON aa.id = bb.actor_id
INNER JOIN movies AS cc
ON cc.id = bb.movie_id";
编辑2:(来自评论)
您可以使用以下代码:
$conn = mysqli_connect("localhost", "db_username", "your_password", "your_database");
$query = "
SELECT aa.id AS actor_id, aa.first_name, aa.last_name, cc.name AS movie_name, cc.year AS release_year
FROM actor AS aa
INNER JOIN role AS bb
ON aa.id = bb.actor_id
INNER JOIN movies AS cc
ON cc.id = bb.movie_id";
$result = mysqli_query($conn, $query);
echo '
<table>
<thead>
<tr>
<th>Actor id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Movie name</th>
<th>Release date</th>
</tr>
</thead>
<tbody>';
while($row = mysqli_fetch_array($result)) {
echo '<td>'.$row['actor_id'].'</td>';
echo '<td>'.$row['first_name'].'</td>';
echo '<td>'.$row['last_name'].'</td>';
echo '<td>'.$row['movie_name'].'</td>';
echo '<td>'.$row['release_year'].'</td>';
}
echo '
</tbody>
</table>';