function getRotatingOrder($items_count = 5) {
// Başlangıç zamanından bu yana geçen saat sayısını hesapla
$hours = floor(time() / 3600);
// Rotasyon sayısını hesapla
$rotation = $hours % $items_count;
// SQL için ORDER BY ifadesini oluştur
$orderBy = "ORDER BY CASE
WHEN (id % {$items_count}) = {$rotation} THEN 0
WHEN (id % {$items_count}) > {$rotation} THEN (id % {$items_count})
ELSE (id % {$items_count} + {$items_count})
END ASC, date_added DESC";
return $orderBy;
}if(isset($post_array["order"]) && $post_array["order"]) {
$order_by = getRotatingOrder(5, $pri_ord);
} else {
$order_by = getRotatingOrder(5, $pri_ord);
}order_way artık gerekli değil çünkü rotasyon mantığı bunu içeriyor
İlan sayısını değiştirmek için de fonksiyonu çağırırken parametre olarak farklı bir sayı verebilirsiniz
$order_by = getRotatingOrder(10); // 10 ilan için rotasyon
Her saat başı otomatik olarak rotasyon gerçekleşir
İlanlar belirttiğiniz şekilde (51234, 45123, ...) sırayla döner