Aşağıdaki kod parçasını inceleyin:
$beat = date('B'); // 1 beat = 86.4 seconds, 1000 beats = 1 day
$total = 'SELECT COUNT(id) FROM ads WHERE featured = 1;'; // number of featured ads
$current = 'SELECT * FROM ads WHERE featured = 1 ORDER BY id ASC LIMIT 1 OFFSET ' . ($beat % $total) . ';'; // current featured ad
Temelde bu döngüleri bunların her biri bir yendi vererek tüm özellikli reklamları (86.4 saniye) Onlar özel vurgu, örnek verilecektir pencere yalak:
$beat $total $current
0 3 0
1 3 1
2 3 2
3 3 0
4 3 1
5 3 2
6 3 0
7 3 1
Bu $ toplam sorgu için ihtiyacı ortadan kaldırır ve sadece tek bir sorgu kullanarak aynı gerçekleştirmek mümkün olacaktır nasılsa, ancak ben merak ediyorum, gayet güzel çalışıyor.
Ben alt sorguları kullanmadan bunu yapmak için zaten görmüyorum ama yine de, ben bu konuda fikirlerinizi duymak isterim.