29-11-2004 19:11
Заказчик пожаловался на то, что 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 рандомайзер...
Комментарии:
10-11-2006 13:47
Эй чювак. Это хуйня!
Нада обновить MySQL.

\o/ _ПРЕВЕД!
Закрыть