Mysql сравнить данные JSON с базой данных - PullRequest
0 голосов
/ 11 ноября 2018

Идея кода, приведенного ниже, состоит в том, чтобы сделать «Оповещение об отмене подписки» для пользователей / стримеров Twitch. Концепция: Twitch api дает мне список текущих подписчиков канала, который в моем коде, если я найду новое имя, я положить его в базу данных под именем последователя и то же самое для последующего времени. Моя проблема: я не могу получить SQL-код для понимания и сравнения текущих подписчиков с базой данных и отображения подписчика, который отсутствует в API, но отсутствует в базе данных.

 <?php
 $connection = new mysqli("localhost","root","","twitchun");
 $channelsApi = 'https://api.twitch.tv/helix/users/follows? 
 to_id=176714165&first=10';
 $channelName = '';
 $clientId = 'pm7oxir9hxzhrl0hnzdxdrg';
 $ch = curl_init();
 curl_setopt_array($ch, array(
 CURLOPT_HTTPHEADER => array(
   'Client-ID: ' . $clientId
 ),
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_URL => $channelsApi . $channelName
 ));
 $response = curl_exec($ch);
 curl_close($ch);
 //echo $response;
 $json = json_decode($response, true);
 foreach ($json['data'] as $names){

  echo '<p>'.$names['from_name'].'</p>';
}



 foreach ($json['data'] as $names){
 $result = $connection->query("SELECT follower_name FROM followers WHERE 
 follower_name = '".$names['from_name']."'");
 if($result->num_rows == 0) {
 //if follower doesnt exist in database put him in
  mysqli_query($connection, 'INSERT into followers(follower_name, 
  follow_time) VALUES ("'.$names['from_name'].'", 
 "'.$names['followed_at'].'")'); 
 } else {
 //if follower exists in database and in json
 }

часть, где это не работает

 $fnames= $names['from_name'];
 $result2 = $connection->query("SELECT follower_name FROM followers WHERE 
 follower_name <> '".$fnames."' order by follow_time desc");

   $unfollow = mysqli_fetch_assoc($result2);
   foreach($unfollow as $unfollower){
       echo '<p style="color:red">'.$unfollower.'</p>';
   }

 }
...