Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
joTunkiq каза:Можеш да го ложиш в кофинга или да го ползваш с Cron jobs, както си решишPHP:if(date("H:i") == "00:00") { mysql_query("UPDATE `TABLICA` SET `views`='0' "); /// направи си заявката }Само си нагласи заявката
:?:
<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 е решението.
djman каза:somefile.php:
<?php
mysqli_query(...);
добавяш файла в cron jobs. Примерно superhosting имат такава опция за споделен хостинг.
0 5 * * * php /path/to/somefile.php >/dev/null 2>&1
Ще се изпълнява всеки ден в 5:00 сутринта.
* * * * * 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)
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.
Ако още нещо не ти е ясно, кажи точно![]()
djman каза:Точно така. Само че 59 * * * * се изпълнява всеки час на 59-тата минута. Ако искаш всеки ден в 0:0, то трябва да е 0 0 * * *
За да разбереш, че се изпълнява, в скрипта слагаш echo 'нулирано'; , примерно. Даже е хубаво да сложиш повече такива, за да видиш как върви и ако има грешка някъде.
за нов ред използвай PHP_EOL:
echo 'Пишеш нещо тук' . PHP_EOL;
( е, или echo "Пишеш нещо тук\n"; )
И накрая: добави накрая на командата > /home/u..../cron.txt
По този начин това, което изкара твоя скрипт (чрез echo) се записва в txt файла (чрез > се презаписва, чрез >> се допълва)
djman каза:Във файла трябва да има:
връзка с база данни
заявка за нулиране (във втория пост в тази тема)
това е.
Като за начало пусни само едно echo date('H:i:s'); във файла и виж дали се изпълнява. Сложи го на всяка минута 1 * * * * и виж дали има нещо в cron.txt
if(date("H:i") == "00:00")
{
djman каза:Не ти трябва тази проверка. Трябва ти само заявката - mysqli_query() със съответната заявка (както е във втория пост, само оправи имената на таблиците и полетата, щото аз още по-малко и от теб знам какви таблици имаш))).
mysql_query("SELECT * FROM videos WHERE date_format = '".date("H:i")."' ORDER BY views_daily DESC LIMIT 20");
djman каза:дай структурата на таблицата и примерен запис (SELECT * FROM videos LIMIT 1)
djman каза:Приятелю, ти какво искаш?
...
Как очакваш да ти помогна със заявката, ако не знам как е структурирана таблицата? Коя таблица - там, където се записват тия гледания, нали за тях говорим.Дадох ти и заявка, която да изпълниш, за да ми дадеш примерен запис.
Накратко, това мисля, че трябва да проработи:
UPDATE videos SET views_daily = 0;