0

我在尝试使用 WHERE 子句使这些查询起作用时遇到问题。我有两个看起来像这样的表:

在此处输入图像描述

在此处输入图像描述

我想做的是回归每部电影的类型。目前,我所看到的根本没有数据返回。这是两个查询:

$film_id = $row_movie_list['film_id']; 
mysql_select_db($database_fot , $fot);
$query_get_genre = "SELECT * FROM film_genre WHERE `id_film` ='". $film_id. "'";
$get_genre = mysql_query($query_get_genre, $fot) or die(mysql_error());
$row_get_genre = mysql_fetch_assoc($get_genre);
$totalRows_get_genre = mysql_num_rows($get_genre);

$genre_id = $row_get_genre['id_genre']; 
mysql_select_db($database_fot , $fot);
$query_genre = "SELECT * FROM genre WHERE `id_genre` ='". $genre_id. "'";
$genre= mysql_query($query_genre, $fot) or die(mysql_error());
$row__genre = mysql_fetch_assoc($genre);
$totalRows_genre = mysql_num_rows($genre);

带有内容区域的 PHP。我对 PHP 相当陌生,因此将不胜感激。

<?php do { echo $genre['genre']; } while($row_get_genre = mysql_fetch_assoc($get_genre));   ?>

更新:我现在能够获得第一个流派但不是第二个,它只是重复第一个流派两次,我尝试过但仍然没有运气:

do {do { echo $row_genre['genre']; } while($row_genre = mysql_fetch_assoc($genre));} while($row_get_genre = mysql_fetch_assoc($get_genre));   ?>
4

1 回答 1

0

避免您使用不推荐的方式来建立连接并与 MySQL 交互的事实,您正在做的是获取单个关系流派电影,然后获取匹配流派的行。您应该将部分代码用一段时间来执行,而它仍然是带有 id 的电影类型。就像是:

$film_id = $row_movie_list['film_id']; 
mysql_select_db($database_fot , $fot);
$query_get_genre = "SELECT * FROM film_genre WHERE `id_film` ='". $film_id. "'";
$get_genre = mysql_query($query_get_genre, $fot) or die(mysql_error());

while($row_get_genre = mysql_fetch_assoc($get_genre)){
    $genre_id = $row_get_genre['id_genre'];
    $query_genre = "SELECT * FROM genre WHERE `id_genre` ='". $genre_id. "'";
    $genre= mysql_query($query_genre, $fot) or die(mysql_error());
    $row__genre = mysql_fetch_assoc($genre);

   // You should do whatever you want to do with $row__genre here. Otherwise it will be cleared.
}

我必须坚持这是与 MySQL 数据库通信的一种已弃用且不安全的方式。我建议您阅读有关 MySQLi 或 PDO 扩展的信息。

MySQLi:http ://www.php.net/manual/en/book.mysqli.php

PDO:http ://www.php.net/manual/en/book.pdo.php

于 2014-04-19T00:40:34.573 回答