Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组:将API中的值与自己数据库中的值进行比较_Php_Mysql - Fatal编程技术网

Php 数组:将API中的值与自己数据库中的值进行比较

Php 数组:将API中的值与自己数据库中的值进行比较,php,mysql,Php,Mysql,我建立了一个列表(moviesSeen),人们可以在其中保存他们看过的电影 现在我想从API中获取每部电影的导演,然后比较已经看过的电影。电影的输出工作正常,但我无法从数据库(moviesSeen)中获得与导演的电影匹配的结果。我怎样才能做到这一点 剧本的目标是展示一个导演的所有电影,并标出你已经看过的所有电影 function getCrewDetails() { global $apiKey; global $language; $personID = htmls

我建立了一个列表(moviesSeen),人们可以在其中保存他们看过的电影

现在我想从API中获取每部电影的导演,然后比较已经看过的电影。电影的输出工作正常,但我无法从数据库(moviesSeen)中获得与导演的电影匹配的结果。我怎样才能做到这一点

剧本的目标是展示一个导演的所有电影,并标出你已经看过的所有电影

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()的内容。我将尝试此操作。谢谢!