【发布时间】:2018-05-03 12:43:21
【问题描述】:
所以我在同一个数据库中有 2 个表,它们通过一个变量相互链接。如何从一个表中获取一条信息并使用它从另一个表中选择具有该值的所有内容?
$term = $_REQUEST["term"];
$films = array();
if (isset($term)) {
$sqlFilms = "SELECT * FROM films WHERE title LIKE '%" . $term . "%'";
} else {
$sqlFilms = "SELECT * FROM `films`";
}
$resultFilms = mysqli_query($link, $sqlFilms);
while ($row = mysqli_fetch_array($resultFilms, MYSQLI_BOTH)) {
$films[] = Array("id" => $row["id"],
"title" => $row["title"],
"poster" => $row["poster"],
"description" => $row["description"],
"director" => $row["director"]);
};
这段代码运行良好,我可以访问标题中包含 $term 的所有“电影”。但是,如果我搜索一个流派,它是一个不同的表,但有一个名为“film_id”的变量,它等于与其关联的电影的“id”,我要么得到所有电影,要么没有电影。这是按类型尝试电影的代码。
$genreFilms = array();
$stuff = array();
if (isset($term)) {
$sqlGenreFilmIDs = "SELECT film_id FROM genres WHERE genre LIKE '%" . $term . "%'";
$resultGenres = mysqli_query($link, $sqlGenreFilmIDs);
$sqlGenreFilms = "SELECT * FROM films WHERE id LIKE '%" . $stuff["film_id"] . "%'";
} else {
$sqlGenreFilms = "SELECT * FROM `films`";
}
$resultGenreFilms = mysqli_query($link, $sqlGenreFilms);
while ($genrerow = mysqli_fetch_array($resultGenreFilms, MYSQLI_BOTH)) {
$genreFilms[] = Array("id" => $genrerow["id"],
"title" => $genrerow["title"],
"poster" => $genrerow["poster"],
"description" => $genrerow["description"],
"director" => $genrerow["director"]);
};
【问题讨论】: