Рестартиране на топ 20 класация

onestarr

Registered
Здравейте имам топ 20 класация за видео но искам да се рестартира когато стане 00:00 да почва на ново да отчита гледанията на клиповете както е топ 40 в vbox7
Ползвам системата на hitove24
 
PHP:
if(date("H:i") == "00:00")
{
  mysql_query("UPDATE `TABLICA` SET `views`='0'  "); 
/// направи си заявката
}
Можеш да го ложиш в кофинга или да го ползваш с Cron jobs, както си решиш :) Само си нагласи заявката :) :?:
 
И ако никой не посети сайта в 00:00, всичко отива на кино)

crontab е решението.
 
joTunkiq каза:
PHP:
if(date("H:i") == "00:00")
{
  mysql_query("UPDATE `TABLICA` SET `views`='0'  "); 
/// направи си заявката
}
Можеш да го ложиш в кофинга или да го ползваш с Cron jobs, както си решиш :) Само си нагласи заявката :) :?:

Чувал съм за Cron jobs но не знам как се използва ето това е php кода за класацията

PHP:
<div class="box-head-light"><h3><salih><b>Топ 20</b></salih></a></h3></div>
	


<div class="box-content">
<a href="index.php?p=top20"><button class="action blue"><span class="label">Топ 20 клипове</span></button></a>
<a href="index.php?p=rating"><button class="action blue"><span class="label">Топ 20 най-харесвани</span></button></a>
<a href="index.php?p=commented"><button class="action blue"><span class="label">Топ 20 най-коментирани</span></button></a>
<a href="index.php?p=random_videos"><button class="action blue"><span class="label">Случайни</span></button></a>
</br>
	<?php
		$n = 1;
		$q = mysql_query("SELECT * FROM videos WHERE active = '1' ORDER BY views_daily DESC LIMIT 20");
		while($r = mysql_fetch_array($q)){
			
			

                                               $qu = mysql_query("SELECT * FROM users WHERE id = '".$r['us_id']."'");
			$ru = mysql_fetch_array($qu);
			
			$r['img'] = str_replace("3.jpg", "1.jpg", $r['img']);
	?>
			<table width="100%" border="0" cellspacing="2" cellpadding="2">
				<tr>
					<td width="10%" align="center"><big><b><?php echo $n++ ?></b></big></td>
					<td width="5%" class="music_video" style="float: none;"><a href="index.php?p=play&id=<?php echo $r['id'] ?>" title="<?php echo $r['title'] ?>"><img src="<?php echo $r['img'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
					<td width="50%"><a href="index.php?p=play&id=<?php echo $r['id'] ?>"><b><?php echo $r['title'] ?></b></a></td>
					<td width="20%" align="center"><small>качил</small><br /><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>"><img src="uploads/avatars/small_<?php echo $ru['avatar'] ?>" class="avatar" width="48" height="48" /></a><br /><?php echo user($ru['id']) ?></td>
					<td width="15%" align="center"><big><b><?php echo $r['views_daily'] ?></b></big><br />гледания</td>
				</tr>
			</table>
			<div class="line"></div>
	<?php
		}
	?>
</div>
 
djman каза:
И ако никой не посети сайта в 00:00, всичко отива на кино)

crontab е решението.

Били обяснил какво е crontab и как се използва или дай готов код както е направил потребителя по-горе
 
somefile.php:
<?php
mysqli_query(...);

добавяш файла в cron jobs. Примерно superhosting имат такава опция за споделен хостинг.

0 5 * * * php /path/to/somefile.php >/dev/null 2>&1

Ще се изпълнява всеки ден в 5:00 сутринта.
 
djman каза:
somefile.php:
<?php
mysqli_query(...);

добавяш файла в cron jobs. Примерно superhosting имат такава опция за споделен хостинг.

0 5 * * * php /path/to/somefile.php >/dev/null 2>&1

Ще се изпълнява всеки ден в 5:00 сутринта.

Добре кое по точно да добавя трябва ли да замествам нещо или да променям?
 
Реда със звездичките виждаш ли го? Това е за cron jobs. Прочети в нета за cron.

Код:
*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Скрипта, който ще нулира, трябва да има само това, което трябва да направи - да нулира топ 20. Без html, без css.

Ако още нещо не ти е ясно, кажи точно :)
 
djman каза:
Реда със звездичките виждаш ли го? Това е за cron jobs. Прочети в нета за cron.

Код:
*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Скрипта, който ще нулира, трябва да има само това, което трябва да направи - да нулира топ 20. Без html, без css.

Ако още нещо не ти е ясно, кажи точно :)

Така ли трябва да е http://prikachi.com/images/252/7511252b.png
Ето и въпросната класация http://fenclip.t15.org/index.php?p=top20
И как да разбера кога се ресва?
 
Точно така. Само че 59 * * * * се изпълнява всеки час на 59-тата минута. Ако искаш всеки ден в 0:0, то трябва да е 0 0 * * *

За да разбереш, че се изпълнява, в скрипта слагаш echo 'нулирано'; , примерно. Даже е хубаво да сложиш повече такива, за да видиш как върви и ако има грешка някъде.

за нов ред използвай PHP_EOL:
echo 'Пишеш нещо тук' . PHP_EOL;

( е, или echo "Пишеш нещо тук\n"; )

И накрая: добави накрая на командата > /home/u..../cron.txt
По този начин това, което изкара твоя скрипт (чрез echo) се записва в txt файла (чрез > се презаписва, чрез >> се допълва)
 
djman каза:
Точно така. Само че 59 * * * * се изпълнява всеки час на 59-тата минута. Ако искаш всеки ден в 0:0, то трябва да е 0 0 * * *

За да разбереш, че се изпълнява, в скрипта слагаш echo 'нулирано'; , примерно. Даже е хубаво да сложиш повече такива, за да видиш как върви и ако има грешка някъде.

за нов ред използвай PHP_EOL:
echo 'Пишеш нещо тук' . PHP_EOL;

( е, или echo "Пишеш нещо тук\n"; )

И накрая: добави накрая на командата > /home/u..../cron.txt
По този начин това, което изкара твоя скрипт (чрез echo) се записва в txt файла (чрез > се презаписва, чрез >> се допълва)

Проблема е че не се изпълнява направих го преди 2 часа а още нищо не се е реснало стоят си същите гледания..
Също така не разбрах много това с кода кво по точно тряя да напиша в самия код ако може напиши го само да заместя ако трябва нещо
 
Във файла трябва да има:

връзка с база данни
заявка за нулиране (във втория пост в тази тема)

това е.

Като за начало пусни само едно echo date('H:i:s'); във файла и виж дали се изпълнява. Сложи го на всяка минута 1 * * * * и виж дали има нещо в cron.txt
 
djman каза:
Във файла трябва да има:

връзка с база данни
заявка за нулиране (във втория пост в тази тема)

това е.

Като за начало пусни само едно echo date('H:i:s'); във файла и виж дали се изпълнява. Сложи го на всяка минута 1 * * * * и виж дали има нещо в cron.txt

Каква трябва да е таблицата защото с този код не ми се получи
PHP:
if(date("H:i") == "00:00")
{
малко съм куц с базата данни
 
Не ти трябва тази проверка. Трябва ти само заявката - mysqli_query() със съответната заявка (както е във втория пост, само оправи имената на таблиците и полетата, щото аз още по-малко и от теб знам какви таблици имаш))).
 
djman каза:
Не ти трябва тази проверка. Трябва ти само заявката - mysqli_query() със съответната заявка (както е във втория пост, само оправи имената на таблиците и полетата, щото аз още по-малко и от теб знам какви таблици имаш))).

Като го напиша така не ми излизат никакви клипове
PHP:
mysql_query("SELECT * FROM videos WHERE date_format = '".date("H:i")."' ORDER BY views_daily DESC LIMIT 20");
 
djman каза:
дай структурата на таблицата и примерен запис (SELECT * FROM videos LIMIT 1)

Структурата на таблицата videos ли и какъв примерен запис?
 
Приятелю, ти какво искаш?



...



Как очакваш да ти помогна със заявката, ако не знам как е структурирана таблицата? Коя таблица - там, където се записват тия гледания, нали за тях говорим. :) Дадох ти и заявка, която да изпълниш, за да ми дадеш примерен запис.

Накратко, това мисля, че трябва да проработи:

UPDATE videos SET views_daily = 0;
 
djman каза:
Приятелю, ти какво искаш?



...



Как очакваш да ти помогна със заявката, ако не знам как е структурирана таблицата? Коя таблица - там, където се записват тия гледания, нали за тях говорим. :) Дадох ти и заявка, която да изпълниш, за да ми дадеш примерен запис.

Накратко, това мисля, че трябва да проработи:

UPDATE videos SET views_daily = 0;

Ипзратих ти и sql и php кода на топ 20 на ЛС
 

Back
Горе