我有这个Cron Job,我想每天跑一次。它检查是否是新的一天,如果是,它会在我的数据库表中插入一个新行。我用它来跟踪我在线商店中每件商品的每日销售情况。
我还需要它从该product_id的最后一行抓取day
,将其递增1,然后将其包含在我的INSERT
查询中。这样我就可以轻松跟踪每种产品的当前日期。
MAX(time_stamp)
也是非法代码,但我不知道要替换它的内容。我用它来为每个项目选择最新的一天,这样Cron Job就不会选择每一行。
我之前从未使用过Cron Jobs,这意味着我是个菜鸟,所以请对我很轻松:)
感谢您的帮助! :)
这是我的代码:
PHP:
// Checks if past a day
$days = DB::fetch("SELECT * FROM `daily_sales` WHERE MAX(time_stamp)<=CURRENT_DATE - INTERVAL 1 DAY;");
$numrows = count($days);
// If there is a new day
if ($numrows > 0) {
foreach ($days as $i => $day) {
// Adds a fresh day with 0 sales
$sales = 0;
$product_id = $day->product_id;
$day = // Get the day from the last row, and add 1
$time_stamp = time();
DB::query('INSERT INTO `daily_sales` (`product_id`, `sales`, `day`, `time_stamp`) VALUES (?, ?, ?, ?);', array($product_id, $sales, $day, $time_stamp));
}
}
daily_sales
:(数据库表)
id | product_id | day | time_stamp | sales
答案 0 :(得分:0)
你必须打开cron作业,添加新作业并定义
如何打开cron标签
crontab -e
将以下内容添加到您的cron标签
0 0 * * * php /full/path/to/script.php
OR
你可以使用mysql触发器http://www.mysqltutorial.org/mysql-triggers.aspx,它将允许你制作包含daly销售的“审计”表。因此,您可以使用“插入后”来插入/更新审计表。
希望这会有所帮助