Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Givi 11.11.2003 19:30
Будем считать, что#Количество таблиц $tCnt(20) #Ограничение по количеству товаров $gOut(5) #Таблица куда будут добавляться записи из БД $gTab[] #Временная таблица $tTab[] #SQL-запрос $qSQL[SELECT ... FROM pr_cat_$i WHERE status='hot' ] #Перебираем все таблицы ^for[i](1;$tCnt){ #Если таблица первая, то кладём всё в $gTab ^if($i==1){ $gTab[^table::sql{ $qSQL } }{ #Если таблица не первая, то кладём все в $tTab, а потом добавляем к $gTab $tTab[^table::sql{ $qSQL } ^gTab.join[$tTab] } } #Чтобы не повторялись записи будем хранить в таблице их номера $nRec[^table::create{n}] #Случайный номер $n(0) #Теперь будем выводить нужное количество записей ^for[i](1;$gOut){ #Пока random не выдаст нам не совпадающий номер будем его вызывать ^while(!^nRec.locate[n;$n]){ #Здесь $gOut это количество записей $n(^math:random($gOut)) } #Добавим номер в таблицу, чтобы знать что он уже был ^nRec.append{$n} #Смещаем указатель на случайное число ^gTab.offset($n) #Выводим <div>$gTab.fields</div> }Хм... Как-то громоздко получилось и не красиво :( Тем не менее может быть будет работать :)))