I am trying to sort by publishedAt. The sql is inserting from json data and I need to get the newest, but this code getting the oldest.
What is wrong with my code?
$loop = mysqli_query($conn, "SELECT channelid, videoId FROM users ORDER BY id")
or die (mysqli_error($conn));
while ($row = mysqli_fetch_array($loop))
{
$channelid = $row['channelid'];
$url = 'https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId='.$channelid .'&maxResults=5&key=KEY';
$content = file_get_contents($url);
$json = json_decode($content, true);
if(!isset($json['items'])) continue; //skip if no items
$videos = ['videoId'=>'','videoId1'=>'','videoId2'=>'','videoId3'=>'','videoId4'=>''];
$i = 0;
foreach($json['items'] as $items)
{
$publishedAt = $items['snippet']['publishedAt'];
$key = 0==$i ? 'videoId' : 'videoId'.$i;
$videos[$key] = $items['id']['videoId'];
++$i;
}
$ii = 0;
$sql = "INSERT INTO users(channelid, publishedAt, videoId, videoId1, videoId2, videoId3, videoId4) VALUES('$channelid', '$publishedAt', '{$videos['videoId']}', '{$videos['videoId1']}', '{$videos['videoId2']}', '{$videos['videoId3']}', '{$videos['videoId4']}')
ON DUPLICATE KEY UPDATE channelid=VALUES(channelid), publishedAt=VALUES(publishedAt), videoId=VALUES(videoId), videoId1=VALUES(videoId1), videoId2=VALUES(videoId2), videoId3=VALUES(videoId3), videoId4=VALUES(videoId4);
";
mysqli_query($conn, "SET NAMES utf8");
if(!mysqli_query($conn,$sql))
{
die('Error : ' . mysqli_error($conn));
}
}