Делаю так и вижу, что допускаю ошибку!
//Сначала считывайте в переменную $mass все ID из таблицы запросом. //Потом делайте: $mass = array_shift($mass); //Это перемешает массив. $mass = $db->one_assoc( "SELECT link_id FROM ".TBL_AD." where catid=\"".$a_Ad['catid']."\"" ); //Потом выбираем ID for($i=0;$i<4;$i++) { $tmp=$mass[$i]; } //Теперь через запятую их складываем $zap=implode(',',$tmp); var_dump($zap); die;
Получаю ворнинги
Warning: array_shift() [function.array-shift]: The argument should be an array in on line 21
Warning: implode() [function.implode]: Invalid arguments passed in on line 27
$zap = NULL
Такая таблица есть
Очень интересно!
Можно ли пример кода для аналогии?
А сколько строк кода в таких сайтах?
Согласен. Вариант, предложенный через массив, бует быстрее, значит на нем следует и остановиться!
function Random_Related_Articles(&$tpl){ global $db,$a_Ad,$TITLE_FIELD; $reg_id = REGION_CRITERION; $ql = 'SELECT link_id AS o_id,'.$TITLE_FIELD.' AS o_title, images AS o_images, b_descr AS o_descr, rand() AS rnd FROM '.TBL_AD. ' WHERE catid="'.$a_Ad['catid'].'"AND _region_id IN ('.get_daughter_cats($reg_id, ModTable('Regions','category')).') '.FilterGetSQL().' GROUP BY link_id ORDER BY rnd LIMIT 4'; $res = $db->query($ql); while($v = mysql_fetch_assoc($res)){ array_rand (); Потом построить запрос $tpl->AddCell('b_Random_Related_Articles',$v); } }
Не знал, что так критично ...
Сессия. Сейчас уточню.
Подход интересный, но если новостей, к примеру 1000, то создается столько же файлов....
, а если есть кэширование, то необходимость в файлах посредственна.
В первом посте при нерандомном запросе, блок для релевантных статей уходил в кэш и жил там до обновления.
При добавлении рандома в sql-запрос, при каждом обновлении в браузере новости, стал рандомно меняться список релевантных статей, для каждой новости свой.
AlexVenga,
А текстовый файл инклудишь и выводишь на странице?
BasePelleta добавил 24.08.2011 в 16:03
Если, к примеру 10 страниц, то для каждой генерятся рандомно свои 4 новости.
Вариант такой имеется и он работает для одной страницы с новостью, а если страниц больше 1, то бля каждой создавать текстовый файл ?
А если мне нужно от 3-10 значений в зависимости от настроек?