AllDecay
@AllDecay
Вечно отдыхающий.

Как брать случайное значение из MySQL с определенной частотой?

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=music', 'root', '');
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$access_token = '';
$gid = '';
$qwe = $dbh->query("SELECT * FROM `music` WHERE 1 ORDER BY RAND() LIMIT 1");
while ($row = $qwe->fetch())
{
$statusSet = curl('https://api.vk.com/method/audio.setBroadcast?audio=157744325_'.$row['id'].'&target_ids='.$gid.'&access_token='.$access_token);
}
function curl( $url ){
    $ch = curl_init( $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    $response = curl_exec( $ch );
    curl_close( $ch );
    return $response;
}
?>

Сделал что-то похожее на радио на основе ВК API. Треки парсю другим скриптом и сохраняю в бд их id.
Как сделать так, чтобы песни, которые уже проигрывались, повторялись к примеру через 2 часа. Думаю что нужно ставить какие-то флаги, но как привязать к PHP не знаю.
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
Добавьте поле с временем проигрывания песни
$qwe = $dbh->query("SELECT * FROM `music` WHERE /* проверка времени, должно пройти больше 2 часов*/ ORDER BY RAND() LIMIT 1");
while ($row = $qwe->fetch())
{
$statusSet = curl('https://api.vk.com/method/audio.setBroadcast?audio...'.$row['id'].'&target_ids='.$gid.'&access_token='.$access_token);
// добавить
$dbh->query("UPDATE `music` SET `last_time` = NOW() WHERE `id` = ".$row['id']);

}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы