现在很多人会直接通过在线客服软件或直接拨打电话来与网站客服人员取得联系,早期很少有人长期管理后台,多数网站还是像企业黄页一样无人值守,只留下电话联系。
留言或表单的缺点很明显,用户提交表单后,没有给管理者任何信息提示,需要打开后台才看得到,因此经常会错过很多宝贵的商机。随着互联网和公司业务的发展,很多公司已配备了在线客服人员,使用百度商桥(已升级为爱番番)、53KF等客服软件与用户进行沟通,即使不在电脑前也能用手机APP处理对话。
但并不是所有公司都愿意配这样的客服人员,中小型公司还是愿意用社交软件QQ(企业/个人)、微信作为沟通工具。很多时候我们会运用表单获取用户信息以达到营销目的,同时第一时间发送通知给指定的邮箱(QQ、163等),参考文章《织梦提交自定义表单后邮箱通知教程超简单版(支持所有邮箱)》。
为方便管理多个表格的大量数据,需要把数据导出成表格,写过《织梦dedecms自定义表单导出到excel教程》的文章,但数据多了就会全部导出来。如果只需要导出部分数据,就需要添加附加条件。
打开/dede/diy_list.php,找到
else
{
showmsg('未定义操作', "-1");
}
在这句之前添加(如果已经按照上文修改过,只需要增加下面加粗部分)
//by六久阁 else if($action == 'push') { header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename={$diy->name}_".date("Y-m-d").".xls");//表格命名方式 $fieldlist = $diy->getFieldList(); echo "<table><tr>"; foreach($fieldlist as $field=>$fielddata) { echo "<th>{$fielddata[0]}</th>"; } echo "<th>状态</th>"; echo "</tr>"; $sql = "SELECT * FROM {$diy->table} WHERE DATEDIFF(timesj,NOW())>=-4 ORDER BY id DESC"; //timesj为表单的自定义字段名 $dsql->SetQuery($sql); $dsql->Execute('t'); while($arr = $dsql->GetArray('t')) { echo "<tr>"; foreach($fieldlist as $key => $field) { echo "<td>".$arr[$key]."</td>"; } $status = $arr['ifcheck'] == 1 ? '已审核' : '未审核'; echo "<td>".$status."</td>"; echo "</tr>"; } echo "</table>"; } //by六久阁
注意这个SQL语句的中的
SELECT * FROM {$diy->table} WHERE DATEDIFF(timesj,NOW())>=-4 ORDER BY id DESC //调用的是前三天数据,包括当天
SELECT * FROM {$diy->table} WHERE DATEDIFF(timesj,NOW())>=0 ORDER BY id DESC //调用的是当天数据
SELECT * FROM {$diy->table} WHERE DATEDIFF(timesj,NOW())>=-1 ORDER BY id DESC //调用的是昨天数据
SELECT * FROM {$diy->table} WHERE DATEDIFF(timesj,NOW())>=-2 ORDER BY id DESC //调用的是前二天数据
以此类推。如果想调用上周、上上周、上个月等具体某个时间端就需要另外的写法了。比如 between and的写法。
where timesj between '2021-1-14 00:00:00' and '2021-2-14 00:00:00'
也可以用下面的DATEDIFF()函数:
//当n为负数时,表示过去第n天的数据
SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n
//n天内
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<n AND DATEDIFF(字段,NOW())>=0
//包含当天
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<=0 AND DATEDIFF(字段,NOW())>-n
//不包含当天
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<0 AND DATEDIFF(字段,NOW())>-n
注意:因为对索引列使用函数会导致索引失效,如果查询时需要使用到索引,使用MySQL DATE_SUB() 函数。
织梦二次开发QQ群
本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617) 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » 织梦自定义表单导出当天、两天的部分Excel数据方法