ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

15.08.2008, 13:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
интегрировать в твой код некогда .. но примерно вот такой выбор по дате последнего обновления рандома
PHP код:
<?
//вот эту таблу ты создал. в ней будем хранить дату последнего рандома.
/*CREATE TABLE eu_random_delayed (
id smallint(5) unsigned NOT NULL auto_increment,
ldate datetime NOT NULL,
PRIMARY KEY (id)
);*/
$sql = "SELECT ldate FROM eu_random_delayed where ldate > (now() - INTERVAL 1 DAY)";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if ((!$rows) || ($rows < 1)) { //тут идет код с рандомом
//и проапдейтим последнюю дату рандома
$sql = "insert into eu_random_delayed(ldate) values(now())";
mysql_query($sql);
}
else {
//тут идет код без рандома
}
?>
п.с. я не пхп-программер.. если наду будет на руби )) то будет полный код
Последний раз редактировалось geezer.code; 15.08.2008 в 13:12..
|
|
|

15.08.2008, 13:20
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
Вариант понятен, но не понятно его внедрение.
Если оказывается, что один день не прошел, то какие данные должен вывести скрипт?
Очевидно точь-в-точь с предыдущим рандомом. Тогда, как он знает, какие строки он выбирал в преды дущем рандоме?
|
|
|

15.08.2008, 13:57
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от serg-php
Вариант понятен, но не понятно его внедрение.
Если оказывается, что один день не прошел, то какие данные должен вывести скрипт?
Очевидно точь-в-точь с предыдущим рандомом. Тогда, как он знает, какие строки он выбирал в преды дущем рандоме?
если так то нужно создать еще одну промежуточную таблицу. в которую выводить результаты последнего рандома.
|
|
|

15.08.2008, 14:16
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
Тогда ситуация в корне меняется!
У меня вывод рандома по 5 нужным мне категориям!
Рандом и скрипта, который инклудится убираем.
А ситуация такая:
Каждые сутки или иной интервал, скриптец запусакется и рандобно выбирает данные из указанных категорий!
|
|
|

15.08.2008, 14:48
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
Подсказали такой вариант:
Главная таблица eu_add
1. Создать таблицу eu_add_random , в которой будет ифа, к ней, собственно, скрипт из инклуда будет обращаться, а не к eu_add;
(Это не проблема - знаю как сделать)
2. Скрипт, который будет пополнять таблицу eu_add_random из таблицы eu_add раз в сутки?
Как он будет запускаться? (Можно ли не кроном? Или крон опитимальный варант?)
|
|
|

15.08.2008, 14:51
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от serg-php
Подсказали такой вариант:
Главная таблица eu_add
1. Создать таблицу eu_add_random , в которой будет ифа, к ней, собственно, скрипт из инклуда будет обращаться, а не к eu_add;
(Это не проблема - знаю как сделать)
2. Скрипт, который будет пополнять таблицу eu_add_random из таблицы eu_add раз в сутки?
Как он будет запускаться? (Можно ли не кроном? Или крон опитимальный варант?)
можно не кроном... для этого при каждом запросе к скрипту будет выполняться минимум 1 лишний запрос к базе. поэтому лучше кроном.
|
|
|

15.08.2008, 15:34
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
Тогда я делаю так:
1. Делаю дубликат таблицы eu_add и называю ее eu_add_random
2. Создаю пхп-файл, который собственно крон и должен запускать.
3. В файле пишу, копировать из eu_add в eu_add_random из таких категорий, случайним образом.
И все!
|
|
|

15.08.2008, 16:15
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
PHP код:
<?
/* Замените нижеследующие переменные на свои */
$host = "localhost"; // MySQL server
$user_db = ""; // MySQL пользователь
$pass_db = ""; // MySQL пароль
$dbase = ""; // MySQL база данных
$dtable = "eu_ad"; // Таблица в базе данных
$dtable_rnd = "eu_add_random"; // Таблица в базе данных
/* Соединение с сервером базы данных */
mysql_connect ($host, $user_db, $pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);
/* Создание SQL запроса */
$sql = "SELECT link_id, images, v_title, v_255_12, v_descr, catid, rand() AS rnd FROM $dtable WHERE ((catid=471)OR(catid=473) OR(catid=474) OR(catid=475)OR(catid=476)) GROUP BY link_id ORDER BY rnd LIMIT 5";
$sql = "INSERT link_id, images, v_title, v_255_12, v_descr, catid INTO $dtable_rnd";
?>
|
|
|

15.08.2008, 16:18
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
SELECT link_id, images, v_title, v_255_12, v_descr, catid, rand() AS rnd INTO $dtable_rnd FROM $dtable WHERE ((catid=471)OR(catid=473) OR(catid=474) OR(catid=475)OR(catid=476)) GROUP BY link_id ORDER BY rnd LIMIT 5";
|
|
|

15.08.2008, 17:33
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
А не проще ли вместо извращений с БД выводить результат запроса в файл и его просто инклудить? Преимущества на лицо - в десятки раз уменьшаем количество запросов к базе (так как надо раз обновлять файл раз в час/сутки), не надо создавать лишних, да и ненужных таблиц
Получится что-то вроде:
PHP код:
$filetime=lstat('news.txt'); // Получаем массив информации о файле
$cur=time()-$ftime[9]; // Получаем время прошедшее с последней модификации файла
if ($cur>2500) // Если прошло больше 2500 секунд, то делаем запрос к БД
{
$f=fopen('news.txt','w');
// Все echo заменяем на $out.=
// Чтобы собрать в эту переменную все данные которые надо выводить
$host = "localhost"; // MySQL server
$user_db = ""; // MySQL пользователь
$pass_db = ""; // MySQL пароль
$dbase = ""; // MySQL база данных
$dtable = "eu_ad"; // Таблица в базе данных
mysql_connect ($host, $user_db, $pass_db);
mysql_select_db($dbase);
$sql = "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";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
$out="";
if ((!$rows) || ($rows < 1)) {$out.="Результатов НЕТ!!!";}
else {
$out.="<table width=500 class=last_pellets>";
while(list($id_link, $images, $v_title, $v_255_12, $v_descr ) = mysql_fetch_row($result)) {
$images = explode( "\n", $images );
$images = $images[0];
$v_descr=strip_tags($v_descr);
$v_descr=substr($v_descr,0,150);
$out.= "<tr><td>";
if(empty($images))
echo "";
else
$out.= "<a href='page-o$id_link.html'><img src='files/$images' width=60 class=imgConf></a>";
$out.="</td><td><a href='page-o$id_link.html'>$v_title</a> $v_descr ... </td><td>$v_255_12</td></tr>";
}
}
$out.="</table>";
fwrite($f,$out);fclose($f); // Записываем в файл
}
echo file_get_contents('news.txt'); // Всегда выводим содержимое файла
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|