我要做的是一个统计页面 查询条件是根据输入(js点击选择时间)开始时间 结束时间 点确定按钮查询这时间段记录
数据库字段:
id int(10)
ip varchar(50)
time varchar(50)
type varchar(50) 开始日期:<input type="text" name="time" onfocus="c.showMoreDay = false;c.show(this);" />&nbsp;&nbsp;结束日期:<input type="text" name="time" onfocus="c.showMoreDay = false;c.show(this);" />&nbsp;&nbsp;<input type="submit" value="确定" />下面是一个表格:
内容是类型和对应数量请各位帮下忙,刚接触统计

解决方案 »

  1.   

    开始日期:<input type="text" name="timeStart" onfocus="c.showMoreDay = false;c.show(this);" />&nbsp;&nbsp;结束日期:<input type="text" name="timeEnd" onfocus="c.showMoreDay = false;c.show(this);" />&nbsp;&nbsp;<input type="submit" value="确定" />$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].'<br>';
    }
      

  2.   

    time varchar(50)
    至少应该校正传入数据符合 time 字段的格式才能比较
    他没说,我不知道
      

  3.   

    关键就是数据库语句,原理和做法就和你按ID查询一样的。SQL语句二楼已经给出来了。
    另外一点的话,楼主可以去下载个时间选择插件,毕竟让用户手动输入时间是很不理想的。介绍一个jq的 jquery-calendar 网上有很多种样式表,可以自己选样式。
      

  4.   

    xuzuning 您说的不太懂是说插入时间之前先判断下格式吗
    xiebuqing 我是下载的日历插件用户选择时间
    还一个问题是当用户不查询时间段记录的时候 页面要默认显示数据库里所有类型记录
      

  5.   

    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
    那么至少有两个是比配不到的
      

  6.   

    要求没有精确到时-分-秒 所以我用了varchar类型 查询的时候时间也是年-月-日
      

  7.   

    添加数据的时候获取当前时间 定义了格式 $showtime=date("Y-m-d"); 所以插入数据库的时间格式是年-月-日 用户通过选择时间查询时间格式是年-月-日
      

  8.   

    嗯 我用的是二楼的代码
    <?php
    $t1=$_POST['timeStart'];
    $t2=$_POST['timeEnd'];
    $result=mysql_query("select type,count(*) from total_counter where time BETWEEN '$t1' AND '$t2' group by type");
    while($row=mysql_fetch_row($result)){
    ?>
    中间是表格
    <?php
    }
    ?>现在是要在不查询的时候默认情况下显示数据库的所有记录
    我写了$result1=mysql_query("select type,count(*) from total_counter group by type");
    不知道该怎么同时使用2个sql语句
      

  9.   

    判断一下就可以了
    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);
      

  10.   

    这样写好些,能适应各种情况$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";