我有一张名为“车辆主人”的下表
vhcl_no
department
vhcl_type
vhcl_make
fuel_type
chassis_no
engine_no
manufacture_on
cubic_capacity
rcbook_no
rcbook_valid_till
insurance_no
insurance_company
insurance_from
insurance_to
vhcl_puc
puc_validity
remarks
created_by
updated_by
created_on
我想将提醒邮件发送给
的车辆用户 1) RC book vailidity before 1 month
2) Insurance vailidity before 1 month
3) PUC vailidity before 1 week
如何使用同一个表创建一个可以满足3个以上条件的cron作业?
我尝试了一些事情,但坚持要做的事情
$query1 = mysqli_query($con1, "select * from vehicle_master");
$count = mysqli_num_rows($query1);
if ($count >= 1)
{
while($row = mysqli_fetch_array($query1))
{
$vhcl_no = $row['vhcl_no'];
$department = $row['department'];
$vhcl_type = $row['vhcl_type'];
$vhcl_make = $row['vhcl_make'];
$fuel_type = $row['fuel_type'];
$chassis_no = $row['chassis_no'];
$engine_no = $row['engine_no'];
$manufacture_on = $row['manufacture_on'];
$cubic_capacity = $row['cubic_capacity'];
$rcbook_no = $row['rcbook_no'];
$rcbook_valid_till = $row['rcbook_valid_till'];
$insurance_no = $row['insurance_no'];
$insurance_company = $row['insurance_company'];
$insurance_from = $row['insurance_from'];
$insurance_to = $row['insurance_to'];
$vhcl_puc = $row['vhcl_puc'];
$puc_validity = $row['puc_validity'];
$remarks = $row['remarks'];
$created_by = $row['created_by'];
$updated_by = $row['updated_by'];
$created_on = $row['created_on'];
$search_output .= "<ul>
<li>
<h4>".$vhcl_no."</h4>
<p><b>Department: ".$department."</b></p>
<p>Vehicle Type : ".$vhcl_type."</p>
<p>Vehicle Make: ".$vhcl_make."</p>
<p>Engine No: ".$engine_no."</p>
<p>Manufacture On: ".$manufacture_on."</p>
<p>Rcbook No: ".$rcbook_no."</p>
<p>Rcbook Valid Till: ".$rcbook_valid_till."</p>
<p>Insurance No: ".$insurance_no."</p>
<p>Insurance Company: ".$insurance_company."</p>
<p>Insurance From: ".$insurance_from."</p>
<p>Insurance To: ".$insurance_to."</p>
<p>Vehicle PUC: ".$vhcl_puc."</p>
<p>Vehicle PUC Validity: ".$puc_validity."</p>
<p>Vehicle Remaorks: ".$remarks."</p>
</li><br/>
</ul>";
// var_dump($search_output); die;
$sendMail = true;
}
}
我想开发一个查询,我可以一起执行所有3个condtiond来发送提醒邮件
答案 0 :(得分:1)
使用条件来比较日期, Compare given date with today
这是crontab参考: http://www.adminschoice.com/crontab-quick-reference
如果您的字段是时间戳, 您可能想要的SQL可能是:
$monthFromNow = strtotime("+1 month");
$sql = "select * from vehicle_master where rcbook_valid_till < " . time() - ($monthFromNow) . " and insurance_to < " . time() - ($monthFromNow) . ";";
使用[condition and condition and ..]
在查询中添加所需的字段http://php.net/manual/en/function.date.php https://en.wikipedia.org/wiki/Unix_time
答案 1 :(得分:1)
对不起,这不是您要求的cronjob,但这是SQL查询所需要的。 Sql查询为此答案。
1) RC book vailidity before 1 month
2) Insurance vailidity before 1 month
3) PUC vailidity before 1 week
将此SQL查询放在mysqli_query($con1, "HERE");
SELECT * FROM vehicle_master
WHERE (rcbook_valid_till) <= (NOW() + INTERVAL 1 MONTH) AND (rcbook_valid_till) >= (NOW()) OR
WHERE (insurance_to) <= (NOW() + INTERVAL 1 MONTH) AND (insurance_to) >=(NOW()) OR
WHERE (puc_validity) <= (NOW() + INTERVAL 1 WEEK) AND (puc_validity) >=(NOW())
它将获得所有数据,以便那些在您的时间限制内具有他们的真实性的人。即使遇到其中一个。