Cronjob ъпдейт на всеки 24 часа.

nom3r1

Registered
Няк'ви идеи как се прави ъпдейт на една таблица и изтриване на информация от друга таблица през 24 часа, чрез cronjob? Да речем имаме SQL:

[sql]CREATE TABLE `news` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`title` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`vip` int(100) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

INSERT INTO `news` (`id`, `title`, `vip`) VALUES
(1, 'test', 1);


CREATE TABLE `vip` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`news_id` int(100) NOT NULL DEFAULT '0',
`vip` int(100) NOT NULL DEFAULT '0',
`ot` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`do` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

INSERT INTO `vip` (`id`, `news_id`, `vip`, `ot`, `do`) VALUES
(2, 1, 1, '1314659135', '1317251135');[/sql]

Сега на тези две таблици на всеки 24 часа трябва да се прави update, ако в таблица `vip` е изтекло времето на vip-а то в таблица `news` , полето vip да бъде ъпдейтнато на 0, а в таблица `vip` да се изтрива записа. :?:

Ако има възможност и без cronjob пак е добре дошло. :?:

ЕДИТ: Пропуснах да кажа, че в колоните `ot` и `do` информацията я записвам така:

$time = time();
//insert query


За cron job например:
root@vps-server:~# crontab -e
....
0 1 * * * /home/user/sql_job.php
....



И т'ва ще изпълнява през 1 час кода, който е в sql_job.php?

ИЛИ:

30 0 * * * /usr/bin/curl http://www.site.bg/php_jobs/sql_job.php
 
Код:
$time = time();

$select = mysql_query("SELECT `id`, `news_id` FROM `vip` WHERE `do` < '".$time."'") or die(mysql_error());
if(mysq_num_rows($select) > 0)
{
	while($srow = mysql_fetch_array($select))
	{
		$update = mysql_query("UPDATE `news` SET `vip`='0' WHERE `id`='".$srow['news_id.']."'") or die(mysql_error());
		$delete = mysql_query("DELETE FROM `vip` WHERE `id`='".$srow['id']."'") or die(mysql_error());
	}
}
 

Back
Горе