<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; Рандомизация через день]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=887&amp;type=atom" />
	<updated>2008-08-16T18:43:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=887</id>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5676#p5676" />
			<content type="html"><![CDATA[<p>Да Hanut,<br /> это решение всей моей проблемы!</p>]]></content>
			<author>
				<name><![CDATA[randomizer]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1490</uri>
			</author>
			<updated>2008-08-16T18:43:35Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5676#p5676</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5671#p5671" />
			<content type="html"><![CDATA[<p><strong>randomizer</strong><br />Отличный вариант.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-08-15T16:12:26Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5671#p5671</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5670#p5670" />
			<content type="html"><![CDATA[<p>А вот такой вариант!<br />А не проще ли вместо извращений с БД выводить результат запроса в файл и его просто инклудить? Преимущества на лицо - в десятки раз уменьшаем количество запросов к базе (так как надо раз обновлять файл раз в час/сутки), не надо создавать лишних, да и ненужных таблиц</p><br /><br /><div class="codebox"><pre><code> $filetime=lstat(&#039;news.txt&#039;); // Получаем массив информации о файле 
$cur=time()-$ftime[9]; // Получаем время прошедшее с последней модификации файла 
if ($cur&gt;2500) // Если прошло больше 2500 секунд, то делаем запрос к БД 
{ 
$f=fopen(&#039;news.txt&#039;,&#039;w&#039;);  

// Все echo заменяем на $out.=  
// Чтобы собрать в эту переменную все данные которые надо выводить 

$host = &quot;localhost&quot;;    // MySQL server 
$user_db = &quot;&quot;;        // MySQL пользователь 
$pass_db = &quot;&quot;;            // MySQL пароль 
$dbase = &quot;&quot;;        // MySQL база данных 
$dtable = &quot;eu_ad&quot;;        // Таблица в базе данных 

mysql_connect ($host, $user_db, $pass_db); 
mysql_select_db($dbase); 
$sql = &quot;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&quot;; 
$result = mysql_query($sql); 
$rows = mysql_num_rows($result); 
$out=&quot;&quot;; 
if ((!$rows) || ($rows &lt; 1)) {$out.=&quot;Результатов НЕТ!!!&quot;;} 
else { 
      $out.=&quot;&lt;table width=500 class=last_pellets&gt;&quot;; 
      while(list($id_link, $images, $v_title, $v_255_12, $v_descr ) = mysql_fetch_row($result)) { 
$images = explode( &quot;\n&quot;, $images ); 
$images = $images[0]; 
      $v_descr=strip_tags($v_descr); 
      $v_descr=substr($v_descr,0,150); 

       $out.= &quot;&lt;tr&gt;&lt;td&gt;&quot;; 
           if(empty($images)) 
             echo &quot;&quot;; 
             else 
            $out.= &quot;&lt;a href=&#039;page-o$id_link.html&#039;&gt;&lt;img src=&#039;files/$images&#039; width=60 class=imgConf&gt;&lt;/a&gt;&quot;;  


  $out.=&quot;&lt;/td&gt;&lt;td&gt;&lt;a href=&#039;page-o$id_link.html&#039;&gt;$v_title&lt;/a&gt;   $v_descr ... &lt;/td&gt;&lt;td&gt;$v_255_12&lt;/td&gt;&lt;/tr&gt;&quot;; 
} 
       } 
$out.=&quot;&lt;/table&gt;&quot;; 
fwrite($f,$out);fclose($f); // Записываем в файл 
} 

echo file_get_contents(&#039;news.txt&#039;); // Всегда выводим содержимое файла</code></pre></div>]]></content>
			<author>
				<name><![CDATA[randomizer]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1490</uri>
			</author>
			<updated>2008-08-15T14:13:39Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5670#p5670</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5669#p5669" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>randomizer сказал:</cite><blockquote><p>Скрипт, который будет пополнять таблицу eu_add_random из таблицы eu_add раз в сутки?</p></blockquote></div><p>Без Cron этого не сделать. Ведь в этом случае дата последнего обновления уже нигде не хранится.</p><p>По поводу увеличенной нагрузки, мне кажется, беспокоиться не стоит. Лишний запрос на выборку из tinytext - не может значительно сказаться на скорости, учитывая, что выборка собственно данных будет осуществляться по первичным ключам, а не условию, что значительно быстрее при большом объеме данных.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-08-15T14:10:00Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5669#p5669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5667#p5667" />
			<content type="html"><![CDATA[<p>Hanut, давай держать связьь через асю, в личку свою отправиль, а мысли выкладывать на форуме!</p>]]></content>
			<author>
				<name><![CDATA[randomizer]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1490</uri>
			</author>
			<updated>2008-08-15T13:52:42Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5667#p5667</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5666#p5666" />
			<content type="html"><![CDATA[<p>Hanut,</p><p>благодарю за ответ!</p><p>Есть такой вариант создать дополнительную таблицу, в которую будет рандомизированно копироваться данные из главной таблицы!</p><br /><p>Главная таблица eu_add</p><br /><p>1. Создать таблицу eu_add_random , в которой будет ифа, к ней, собственно, скрипт из инклуда будет обращаться, а не к eu_add;</p><p>(Это не проблема - знаю как сделать)</p><br /><p>2. Скрипт, который будет пополнять таблицу eu_add_random из таблицы eu_add раз в сутки?</p><p><span style="color: #808080"><em>Сообщение добавлено Fri Aug 15 17:49:35 2008</em></span><br /><span style="color: #808080"><em>Сообщение добавлено Fri Aug 15 17:46:38 2008</em></span><br />Думаю такой вариант менее систему грузить будет!</p><br /><div class="codebox"><pre><code>&lt;?

/* Замените нижеследующие переменные на свои */
$host = &quot;localhost&quot;;    // MySQL server
$user_db = &quot;&quot;;        // MySQL пользователь
$pass_db = &quot;&quot;;            // MySQL пароль
$dbase = &quot;&quot;;        // MySQL база данных
$dtable = &quot;eu_ad&quot;;        // Таблица в базе данных
$dtable_rnd = &quot;eu_add_random&quot;;        // Таблица в базе данных




/* Соединение с сервером базы данных */
mysql_connect ($host, $user_db, $pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);
/* Создание SQL запроса */


$sql = &quot;SELECT link_id, images, v_title, v_255_12, v_descr, catid, rand() AS rnd INTO $dtable_rnd FROM $dtable WHERE ((catid=400)OR(catid=401)) GROUP BY link_id ORDER BY rnd LIMIT 5&quot;;



?&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[randomizer]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1490</uri>
			</author>
			<updated>2008-08-15T13:45:45Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5666#p5666</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5665#p5665" />
			<content type="html"><![CDATA[<p>Поправьте имя поля id_link, которое имеет также вид link_id, почему-то.<br /></p><div class="codebox"><pre><code>&lt;?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[&#039;select&#039;]); 
    /* Проверка количества вернувшихся строчек в результате*/ 
    $rows = mysql_num_rows($result); 
    /* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/ 
    if ((!$rows) || ($rows &lt; 1)) {
        echo &quot;Результатов НЕТ!!!&quot;;
    } else { 
          echo &quot;&lt;table width=500 class=last_pellets&gt;&quot;; 
          while(list($id_link, $images, $v_title, $v_255_12, $v_descr ) = mysql_fetch_row($result)) {
              $aLink_id[] = $id_link;
              $images = explode( &quot;\n&quot;, $images ); 
              $images = $images[0]; 
              $v_descr=strip_tags($v_descr); 
              $v_descr=substr($v_descr,0,150); 

              echo &quot;&lt;tr&gt;&lt;td&gt;&quot;; 
              if (empty($images)) 
                  echo &quot;&quot;; 
              else 
                  echo &quot;&lt;a href=&#039;page-o$id_link.html&#039;&gt;&lt;img src=&#039;files/$images&#039; width=60                     class=imgConf&gt;&lt;/a&gt;&quot;;  


              echo &quot;&lt;/td&gt;&lt;td&gt;&lt;a href=&#039;page-o$id_link.html&#039;&gt;$v_title&lt;/a&gt;   $v_descr ... &lt;/td&gt;&lt;td&gt;$v_255_12&lt;/td&gt;&lt;/tr&gt;&quot;; 
          } 
    } 
    echo &quot;&lt;/table&gt;&quot;;
    return $aLink_id; 
}

/* Замените нижеследующие переменные на свои */ 
$host = &quot;localhost&quot;;    // MySQL server 
$user_db = &quot;&quot;;        // MySQL пользователь 
$pass_db = &quot;&quot;;            // MySQL пароль 
$dbase = &quot;&quot;;        // MySQL база данных 
$dtable = &quot;eu_ad&quot;;        // Таблица в базе данных 

/* Соединение с сервером базы данных */ 
mysql_connect ($host, $user_db, $pass_db); 
/* Выбор [HTML]базы данных */ 
mysql_select_db($dbase); 

$sql[&#039;link_ids&#039;] = &#039;SELECT `link_ids`
        FROM `eu_random_delayed`
        WHERE `id` = 1
        AND `time` &gt; (NOW() - INTERVAL 1 DAY)
        AND `link_ids` IS NOT NULL&#039;;
$result = mysql_query($sql[&#039;link_ids&#039;]); 
if (mysql_num_rows($result) &gt; 0) {
    $link_ids = mysql_result($result, 0);
    $sql[&#039;select&#039;] = &#039;SELECT `link_id`, `images`, `v_title`, `v_255_12`, `v_descr`, `catid`
            FROM &#039; . $dtable . &#039;
            WHERE `link_id` IN(&#039; . $link_ids . &#039;)&#039;;
    EchoTable($sql); 
} else {
    $sql[&#039;select&#039;] = &#039;SELECT `link_id`, `images`, `v_title`, `v_255_12`, `v_descr`, `catid`, RAND() AS `rnd`
            FROM &#039; . $dtable . &#039;
            WHERE ((`catid` = 403) OR (`catid` = 404))
            GROUP BY `link_id`
            ORDER BY `rnd`
            LIMIT 5&#039;; 
    $aLink_id = EchoTable($sql);
    if (count($aLink_id) &gt; 0) {
        $sql[&#039;insert&#039;] = &#039;UPDATE `eu_random_delayed` SET
                          `link_ids` = &quot;&#039; . implode(&#039;,&#039;, $aLink_id) . &#039;&quot;
                          WHERE `id` = 1&#039;;
        mysql_query($sql[&#039;insert&#039;]);
    }
}

?&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-08-15T13:11:13Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5665#p5665</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Рандомизация через день]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5662#p5662" />
			<content type="html"><![CDATA[<p>Есть скрипт</p><div class="codebox"><pre><code>&lt;? 
/* Замените нижеследующие переменные на свои */ 
$host = &quot;localhost&quot;;    // MySQL server 
$user_db = &quot;&quot;;        // MySQL пользователь 
$pass_db = &quot;&quot;;            // MySQL пароль 
$dbase = &quot;&quot;;        // MySQL база данных 
$dtable = &quot;eu_ad&quot;;        // Таблица в базе данных 

/* Соединение с сервером базы данных */ 
mysql_connect ($host, $user_db, $pass_db); 
/* Выбор [HTML]базы данных */ 
mysql_select_db($dbase); 
/* Создание SQL запроса */ 
$sql = &quot;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&quot;; 
/* Исполнение SQL запроса */ 
$result = mysql_query($sql); 
/* Проверка количества вернувшихся строчек в результате*/ 
$rows = mysql_num_rows($result); 
/* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/ 
if ((!$rows) || ($rows &lt; 1)) {echo &quot;Результатов НЕТ!!!&quot;;} 
else { 
      echo &quot;&lt;table width=500 class=last_pellets&gt;&quot;; 
      while(list($id_link, $images, $v_title, $v_255_12, $v_descr ) = mysql_fetch_row($result)) { 
$images = explode( &quot;\n&quot;, $images ); 
$images = $images[0]; 
      $v_descr=strip_tags($v_descr); 
      $v_descr=substr($v_descr,0,150); 

       echo &quot;&lt;tr&gt;&lt;td&gt;&quot;; 
           if(empty($images)) 
             echo &quot;&quot;; 
             else 
            echo &quot;&lt;a href=&#039;page-o$id_link.html&#039;&gt;&lt;img src=&#039;files/$images&#039; width=60                     class=imgConf&gt;&lt;/a&gt;&quot;;  


  echo &quot;&lt;/td&gt;&lt;td&gt;&lt;a href=&#039;page-o$id_link.html&#039;&gt;$v_title&lt;/a&gt;   $v_descr ... &lt;/td&gt;&lt;td&gt;$v_255_12&lt;/td&gt;&lt;/tr&gt;&quot;; 
} 
       } 
echo &quot;&lt;/table&gt;&quot;; 
?&gt;</code></pre></div><p>Его я инклудю и при каждом обновленни браузера случайный вывод данных. Хочу, чтобы этот случайниый вывод срабатывал 1 раз в день и выведенный контент не менялся. (Реализация через крон не интересует)</p><p><span style="color: #808080"><em>Сообщение добавлено Fri Aug 15 13:41:51 2008</em></span><br />Есть вариант сделать так, но его нужно дополнить!</p><div class="codebox"><pre><code>&lt;? 
//создал таблу в ней будем хранить дату последнего рандома. 
/*CREATE TABLE eu_random_delayed ( 
id smallint(5) unsigned NOT NULL auto_increment, 
ldate datetime NOT NULL, 
PRIMARY KEY (id) 
);*/ 

$sql = &quot;SELECT ldate FROM eu_random_delayed where ldate &gt; (now() - INTERVAL 1 DAY)&quot;; 
$result = mysql_query($sql); 
$rows = mysql_num_rows($result); 
if ((!$rows) || ($rows &lt; 1)) { //тут идет код с рандомом 
//и проапдейтим последнюю дату рандома 
$sql = &quot;insert into eu_random_delayed(ldate) values(now())&quot;; 
 mysql_query($sql); 
} 
else { 
//тут идет код без рандома  
} 
?&gt;</code></pre></div><p><span style="color: #808080"><em>Сообщение добавлено Fri Aug 15 13:42:59 2008</em></span><br />Как грамотно внедрить второе в первое не знаю! Прошу помочь!</p>]]></content>
			<author>
				<name><![CDATA[randomizer]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1490</uri>
			</author>
			<updated>2008-08-15T09:38:39Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5662#p5662</id>
		</entry>
</feed>
