Просмотр поста

.
aNNiMON

ДоХтор, в массиве указана частота выбора, id картинки совпадает с индексом в массиве.

таблица (+/-)
id | $r
 1 | 4
 2 | 0
 3 | 15
 4 | 3
 5 | 1
 6 | 0
 7 | 7
 8 | 25
 9 | 6
10 | 30


dilp, проблема в том, что частоты указаны в php, а данные лежат в mysql.
Если можно как-то вынести их из массива в таблицу, то задача решается очень просто:
SELECT * FROM kartinka ORDER BY freq * RAND() LIMIT 1

или чуть посложнее:
SELECT * FROM kartinka
WHERE freq > 0
ORDER BY -LOG(1.0 – RAND()) / freq
LIMIT 1