我开发了一个php scrpit,可以自动创建excel用户列表,
每天下午4点和早上6点
问题是选择查询,因为每个列表都包含旧的注册用户,+在cron作业中自动选择的新注册用户。
我需要的是只选择从第二天下午4点到早上6点注册的用户,以及为同一天早上6点到下午4点注册的用户选择的另一个用户。
任何方向或提示都会很棒 谢谢。
<?php
$conn = new mysqli('localhost', 'user', 'pass');
mysqli_select_db($conn, 'dbname');
$setSql = "SELECT * FROM sys";
$setRec = mysqli_query($conn,$setSql);
$columnHeader ='';
$columnHeader = "UID"."\t"."Name"."\t"."Number"."\t";
$setData='';
while($rec = mysqli_fetch_row($setRec))
{
$rowData = '';
foreach($rec as $value)
{
$value = '"' . $value . '"' . "\t";
$rowData .= $value;
}
$setData .= trim($rowData)."\n";
}
date_default_timezone_set('Europe/Tirane');
echo 'Current Server Time:' . date('m/d/Y H:i:s a') ;
$name='export_'.date('m-d-Y_hia').'.xls';
$xen=ucwords($columnHeader)."\n".$setData."\n";
echo $xen;
file_put_contents($name, $xen);
?>
上面的代码每天下午4点和早上6点在cron作业中执行
它应该如何工作:
早上6点执行 - &gt;选择从前一天下午4点到早上6点(脚本运行时)注册的所有用户
下午4点执行 - &gt;选择当天早上6点到下午4点注册的所有用户。
脚本创建一个不同的excel文件,文件名为日期+创建日期和时间,并将文件保存在服务器中。 所有可用文件都显示在另一个页面上,可以下载给用户。
它实际如何运作:
script1在下午4点执行 - &gt;选择所有注册到下午4点的用户
script2在第二天早上6点执行 - &gt;从script1中选择所有用户+从第二天下午4点到早上6点完成的新注册
script1再次在下午4点执行 - &gt;从早上6点到下午4点选择用户,没有从script2中选择相同的用户。
我希望script2取消选择或不选择script1将返回的相同用户,这意味着script1和script2输出中将没有相同的数据。
编辑:也许我需要添加一个日期&amp;表中的时间列是为了实现这个吗?
edit2:更清楚的解释:
&#39;用户X&#39;在下午3点注册,因此在下午4点执行的脚本将返回&#39; userX&#39;
&#39; userY&#39;在晚上7点注册,所以在早上6点执行的脚本应仅返回&#39; userY&#39;而不是&#39; userX&#39;
&#39; userZ&#39;在上午10点注册,因此在下午4点执行的脚本将仅返回&#39; userZ&#39;。
答案 0 :(得分:1)
如果你能提供一些样本数据和你想要的输出会更好,但是 根据我对你的问题的理解,下面的代码将适合你
if(hour(current_timestamp)) =6
Then
select users
from table_name
where hour(datetime) between 6 and 15;
elseif(hour(current_timestamp)) =16
Then
select users
from table_name
where hour(datetime) between 6 and 15;
end if;