Цитата | ||
---|---|---|
Олег Іванюк пишет:
|
Код |
---|
$iUsersCount = 3; $arUserList = array(); $sSql = 'select ID from b_user where ACTIVE = "Y" and LID = "'.SITE_ID.'" order by RAND('.rand(0, 1000000).') limit 0,'.$iUsersCount; $dbItems = $GLOBALS['DB']->Query($sSql, false, 'File: '.__FILE__.'<br>Line: '.__LINE__); while($arItem = $dbItems->Fetch()) { $arUserList[] = $arItem['ID']; } |
Код |
---|
//Сколько случайных пользователей мы хотим получить? $randUserCnt = 3; //Получить общее кол-во пользователей $totalUserCnt = CUser::GetCount(); //Вычисление фракции $fraction = ($randUserCnt/$totalUserCnt); //Искусственное приращение фракции для борьбы с плохим генератором при маленькой выборке. $fractionInc = $fraction*1.8; if ( $fractionInc < 1) { $fraction = $fractionInc; } //Формирование запроса $myUserRandQuery = 'SELECT ID FROM b_user WHERE RAND() <= '.$fraction.' LIMIT '.$randUserCnt; echo $myUserRandQuery."<br>"; //Делаем хитрый запрос к БД при помощи готового экземпляра класса CDataBase : $DB $result = $DB->Query($myUserRandQuery, true); while ($arRandUser = $result->Fetch()) {//Печать случайных ID пользователей echo $arRandUser["ID"]."<br>"; } |