Вот люди предлагают такой вариант: PHP: <?php /* SQL query CREATE TABLE IF NOT EXISTS `eu_random_delayed` ( `id` tinyint(1) unsigned NOT NULL, `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `link_ids` tinytext, PRIMARY KEY (`id`) ); INSERT INTO `eu_random_delayed` (`id`, `time`, `link_ids`) VALUES (1, NULL, NULL); */ function EchoTable($sql) { $aLink_id = array(); /* Исполнение SQL запроса */ $result = mysql_query($sql['select']); /* Проверка количества вернувшихся строчек в результате*/ $rows = mysql_num_rows($result); /* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/ if ((!$rows) || ($rows < 1)) { echo "Результатов НЕТ!!!"; } else { echo "<table width=500 class=last_pellets>"; while(list($id_link, $images, $v_title, $v_255_12, $v_descr ) = mysql_fetch_row($result)) { $aLink_id[] = $id_link; $images = explode( "\n", $images ); $images = $images[0]; $v_descr=strip_tags($v_descr); $v_descr=substr($v_descr,0,150); echo "<tr><td>"; if (empty($images)) echo ""; else echo "<a href='page-o$id_link.html'><img src='files/$images' width=60 class=imgConf></a>"; echo "</td><td><a href='page-o$id_link.html'>$v_title</a> $v_descr ... </td><td>$v_255_12</td></tr>"; } } echo "</table>"; return $aLink_id; } /* Замените нижеследующие переменные на свои */ $host = "localhost"; // MySQL server $user_db = ""; // MySQL пользователь $pass_db = ""; // MySQL пароль $dbase = ""; // MySQL база данных $dtable = "eu_ad"; // Таблица в базе данных /* Соединение с сервером базы данных */ mysql_connect ($host, $user_db, $pass_db); /* Выбор [HTML]базы данных */ mysql_select_db($dbase); $sql['link_ids'] = 'SELECT `link_ids` FROM `eu_random_delayed` WHERE `id` = 1 AND `time` > (NOW() - INTERVAL 1 DAY) AND `link_ids` IS NOT NULL'; $result = mysql_query($sql['link_ids']); if (mysql_num_rows($result) > 0) { $link_ids = mysql_result($result, 0); $sql['select'] = 'SELECT `link_id`, `images`, `v_title`, `v_255_12`, `v_descr`, `catid` FROM ' . $dtable . ' WHERE `link_id` IN(' . $link_ids . ')'; EchoTable($sql); } else { $sql['select'] = 'SELECT `link_id`, `images`, `v_title`, `v_255_12`, `v_descr`, `catid`, RAND() AS `rnd` FROM ' . $dtable . ' WHERE ((`catid` = 403) OR (`catid` = 404)) GROUP BY `link_id` ORDER BY `rnd` LIMIT 5'; $aLink_id = EchoTable($sql); if (count($aLink_id) > 0) { $sql['insert'] = 'UPDATE `eu_random_delayed` SET `link_ids` = "' . implode(',', $aLink_id) . '" WHERE `id` = 1'; mysql_query($sql['insert']); } } ?> Что скажете?
Посмотри выше, то же самое только не нужно десяток двадцатиэтажных мускульных запросов и скрипт практически умещается на коленке
Gifts, это тоже вариант! Касательно нагрузки на систему может быть удачный! Где файл news.txt хранить? В корневой или глубже?
Gifts, в товоем предложении что-то нето! - При каждом запросе разные данные выводятся, а они должны выводиться только через 24 часа!
Если у тебя есть скрипт, который при каждом открытии страницы выводит что-то там по 5 категориям, то вставляешь его между строчками $f=fopen('news.txt','w'); и fwrite($f,$out);fclose($f); Тогда в течение 2500 у тебя будет появляться одна и та же страница с тем выводом, который ты хочешь. Файл news.txt может находиться где угодно, главное чтобы он был открыт для записи (права 777 на всякий случай) и чтобы в скрипте все ссылки были исправлены на новое местоположение этого файла Строчка PHP: $cur=time()-$ftime[9]; Должно быть PHP: $cur=time()-$filetime[9];
Ошибка в скрипте Строчка PHP: $cur=time()-$ftime[9]; Должно быть PHP: $cur=time()-$filetime[9]; Да, скрипт нужно инклудить Нормально он инклудится, только на всякий случай пути до news.txt нужно указывать абсолютные в скрипте
Работает, Гифтс! Я говорю по пяти разделам! У меня согласно данному скрипту реализуется только по одному разделу! Получается 5 инклудов! Скрипта гифта, только с разным обращением к таблице!
Например 1000 хостов в сутки 5 инклудов! Будет ли это максимально оптимальным вариантом реализации моего замысла?
>.< Зачем кроном? Каждый раз пользователь заходя на страницу будет получать либо кешированную страницу, либо он своим заходом ее и обновит, лишние телодвижения совершать не надо. Задержка между обновлениями в строчке if ($cur>2500) Число 2500 - это количество СЕКУНД между обновлениями
Благодарю всех, кто мне помогал! Особенно благодарю Гифта его вариант настолько дельный. Жаль, что я раньше такого способа не знал! Заменил 2500 на 86400 и наслаждаюсь рандомизацией 1 в сутки!