Заказчик пожаловался на то, что banner rotation не работает.
Иду в темплэйт, смотрю где рисуются баннеры. Все ок.
Иду в скрипт, смотрю, где баннеры выдираются из бд.
Там выполняется такой запрос:
select
*, RAND() as R
from BANNER
where
BANNER_ACTIVE = 'on'
and BANNER_FILE != ''
and BANNER_SECTION_ID = '".$section_id."'
order by R desc
limit 5
Все вроде прозрачно.
Добавляю print_r($BANNERS) после выдирания $BANNERS как нумерованного массива ассоциативных массивов.
Обновляю несколько раз страницу.
Замечаю, что у последних 3-х из 5-и баннеров число R постоянно маленькое - меньше 0.2 - хотя и меняется.
Вычислил R[3] / R[4]. 4.29...
Вычислил R[4] / R[5]. 4.25...
Обновил страницу. Все R изменились.
Вычислил R[3] / R[4]. 4.29...
Вычислил R[4] / R[5]. 4.25...
Обновил страницу. Все R изменились.
Вычислил R[3] / R[4]. 4.29...
Вычислил R[4] / R[5]. 4.25...
Вот такой вот в mysql 3.23.54 рандомайзер...