Php 数组:将API中的值与自己数据库中的值进行比较
我建立了一个列表(moviesSeen),人们可以在其中保存他们看过的电影 现在我想从API中获取每部电影的导演,然后比较已经看过的电影。电影的输出工作正常,但我无法从数据库(moviesSeen)中获得与导演的电影匹配的结果。我怎样才能做到这一点 剧本的目标是展示一个导演的所有电影,并标出你已经看过的所有电影Php 数组:将API中的值与自己数据库中的值进行比较,php,mysql,Php,Mysql,我建立了一个列表(moviesSeen),人们可以在其中保存他们看过的电影 现在我想从API中获取每部电影的导演,然后比较已经看过的电影。电影的输出工作正常,但我无法从数据库(moviesSeen)中获得与导演的电影匹配的结果。我怎样才能做到这一点 剧本的目标是展示一个导演的所有电影,并标出你已经看过的所有电影 function getCrewDetails() { global $apiKey; global $language; $personID = htmls
function getCrewDetails() {
global $apiKey;
global $language;
$personID = htmlspecialchars($_GET['personID']);
$url = "https://api.themoviedb.org/3/person/" . $personID . "?api_key=" . $apiKey . "&" . $language . "";// path to your JSON file
$data = file_get_contents($url); // put the contents of the file into a variable
$personPrivate = json_decode($data); // decode the JSON feed
echo '<div class="row">';
echo '<div class="col">';
echo '<img src="https://image.tmdb.org/t/p/w300/' . $personPrivate->profile_path . '" class="img-thumbnail">';
echo '</div>'; // end div col
echo '<div class="col-8">';
echo '<h1>' . $personPrivate->name . '</h1>';
if (!empty($personPrivate->biography)) {
echo $personPrivate->biography;
} else {
echo '<p>Verdammmt! Zu dieser Person liegen keine biographischen Details vor.</p>';
echo '<p>Dabei hätte sie es doch so verdient :(</p>';
}
echo '</div>'; // end div col
echo '</div>'; // end div row
// echo '<pre>';
// print_r($person);
$url = "https://api.themoviedb.org/3/person/" . $personID . "/movie_credits?api_key=" . $apiKey . "&" . $language . "";// path to your JSON file
$data = file_get_contents($url); // put the contents of the file into a variable
$personCareer = json_decode($data); // decode the JSON feed
echo '<div class="container mt-4">';
echo "<h2>Filmographie</h2>";
echo '<table class="table table-striped table-sm">';
echo '<thead>';
echo '<tr>';
echo '<th scope="col">Film</th>';
echo '<th scope="col">Gesehen</th>';
echo '<th scope="col">Funktion</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
global $pdo;
$stmt = $pdo->prepare("SELECT * FROM movieSeen WHERE user_id = '" . $_SESSION['id'] . "'");
$stmt->execute();
foreach ($stmt as $row ) {
echo $row['movie_id'] . ', ';
} // output of the saved IDs in movieSeen
foreach ($personCareer->crew as $showCrewDetails) { //Output of the movies
echo '<tr>';
echo '<td><a href="getMovie.php?movieID=' . $showCrewDetails->id . '">' . $showCrewDetails->title . ' ' . $showCrewDetails->id . ' (' . substr($showCrewDetails->release_date, 0, 4) . ')</a></td>';
echo '<td><span class="badge badge-danger">Movie Seen</span></td>';
echo '<td>' . $showCrewDetails->job . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
echo '</div>';
//echo '<pre>';
//var_dump($personCareer);
}
函数getCrewDetails(){
全球$apiKey;
全球语言;
$personID=htmlspecialchars($_GET['personID']);
$url=”https://api.themoviedb.org/3/person/“$personID.”api_key=“..$apiKey.”和“$language.”;//JSON文件的路径
$data=file\u get\u contents($url);//将文件内容放入变量中
$personPrivate=json_decode($data);//解码json提要
回声';
回声';
回显“配置文件路径”。“class=“img缩略图”>”;
回显“”;//结束div列
回声';
回显“.$personPrivate->name.”;
如果(!空($personPrivate->传记)){
echo$personPrivate->传记;
}否则{
回音“Verdammt!Zu dieser人物列根·基恩传记”详细信息;
回音“达贝·哈特西·多克如此翠绿:(”;
}
回显“”;//结束div列
回显“”;//结束div行
//回声';
//打印(人);
$url=”https://api.themoviedb.org/3/person/“$personID.”/movie_credits?api_key=“.$apiKey.”和“$language.”;//JSON文件的路径
$data=file\u get\u contents($url);//将文件内容放入变量中
$personCareer=json_decode($data);//解码json提要
回声';
呼应“电影导演”;
回声';
回声';
回声';
回声“电影”;
回声“格什亨”;
回声“Funktion”;
回声';
回声';
回声';
全球$pdo;
$stmt=$pdo->prepare(“从movieSeen中选择*,其中user_id='”。$\u SESSION['id'].“”);
$stmt->execute();
foreach($stmt作为$row){
echo$row['movie_id'.',';
}//在movieSeen中保存的ID的输出
foreach($personCareer->crew as$showCrewDetails){//电影的输出
回声';
回声';
回声“电影看过”;
回显“.$showCrewDetails->job.”;
回声';
}
回声';
回声';
回声';
//回声';
//var_dump($personCareer);
}
我知道我必须编辑最后一个foreach循环,但我就是无法让它工作:(您准备并执行了查询,但您似乎没有获取结果。
$films=$stmt->fetchAll();
或类似内容。@droopsnoot movieSeen的id的结果存储在$row['movie\u id']
。我不知道如何将它与最后一个foreach循环中的$showCrewDetails->id
进行比较。啊,对不起,我的错误。因此该变量与您的$row['movie\u id'相同
从您的本地数据库?对于最后一个循环中的每一部电影,您需要查看该ID是否包含在上一个查询中的数组中。您可以使用类似于array_search()的内容。我将尝试此操作。谢谢!