php 获取当年开始时间,php 依据输入 开始时间 结束时间 获取数据库中表中记录...

这篇博客讨论了如何使用PHP从数据库中查询指定时间段内的记录。通过接收用户通过JS选择的开始和结束时间,利用BETWEEN操作符在SQL查询中筛选time字段。同时,提到了time字段为字符串格式时可能存在的匹配问题,并给出了解决方案,包括在查询前检查时间格式的一致性。此外,还建议使用时间选择插件以改善用户体验,并提供了在用户未选择时间范围时显示所有记录的方法。
摘要由CSDN通过智能技术生成

php 根据输入 开始时间 结束时间 获取数据库中表中记录

我要做的是一个统计页面 查询条件是根据输入(js点击选择时间)开始时间 结束时间 点确定按钮查询这时间段记录

数据库字段:

id int(10)

ip varchar(50)

time varchar(50)

type varchar(50)

开始日期:  结束日期:  

下面是一个表格:

内容是类型和对应数量

请各位帮下忙,刚接触统计

------解决方案--------------------

开始日期:  结束日期:  

$t1=$_POST['timeStart'];

$t2=$_POST['timeEnd'];

$sql="select type,count(*) from tt where time BETWEEN '$t1' AND '$t2' group by type";

$result=mysql_query($sql);

while($row=mysql_fetch_row($result)){

echo $row[0].'  '.$row[1].'
';

}

------解决方案--------------------

time varchar(50)

至少应该校正传入数据符合 time 字段的格式才能比较

他没说,我不知道

------解决方案--------------------

关键就是数据库语句,原理和做法就和你按ID查询一样的。SQL语句二楼已经给出来了。

另外一点的话,楼主可以去下载个时间选择插件,毕竟让用户手动输入时间是很不理想的。介绍一个jq的 jquery-calendar 网上有很多种样式表,可以自己选样式。

------解决方案--------------------

time varchar(50)

你保存的时间是字符串,那么

2012.12.14 10:43

2012/12/14 10:43:20

2012-12-14 10:43:31p

都是合法的日期

如果表单传入的是 2012/12/14 10:43:22

那么至少有两个是比配不到的

引用:xuzuning 您说的不太懂是说插入时间之前先判断下格式吗

xiebuqing 我是下载的日历插件用户选择时间

还一个问题是当用户不查询时间段记录的时候 页面要默认显示数据库里所有类型记录

------解决方案--------------------

那你传入的日期格式是怎样的。

------解决方案--------------------

即便只是年月日

'2012/12/14' 与 '2012-12-14' 也是不相等的

------解决方案--------------------

只要格式能够统一,#1的代码就可以用了

------解决方案--------------------

判断一下就可以了

if(!empty($t1) && !empty($t2)){

$sql="select type,count(*) from tt where time BETWEEN '$t1' AND '$t2' group by type";

}else{

$sql="select type,count(*) from total_counter group by type";

}

$result=mysql_query($sql);

------解决方案--------------------

这样写好些,能适应各种情况$t1 = $_POST['timeStart'];

$t2 = $_POST['timeEnd'];

$t = array(1);

if($t1) $r[] = "time>='$t1'";

if($t2) $r[] = "time<='$t2'";

$t = join(' and ', $t);

$sql = "select type,count(*) from total_counter where $t group by type";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值