数据表oa_kaoqin:
数据表oa_qingjia:
数据表oa_kaoqin_config:

解决方案 »

  1.   

    数据表oa_kaoqin:status这个字段后来改为了:0为正常,1为补考勤
      

  2.   

    一次查询这月所有数据,再用php做处理。
      

  3.   

    我可以把外层的合并成一个:
    SELECT user_id,real_name FROM ".$fdyu->table('users')." ".$sql_where." order by real_name desc
    SELECT zt,status,kq_time,time_k,kq_id FROM ".$fdyu->table('oa_kaoqin')." where user_id=".$user_id_r." ".$sql_where_1." and Day(kq_time)=".$i." and type=".$a."";
    select a.user_id,a.real_name, b. zt, b.status,b.kq_time,b.time_k,b.kq_id from users a left join oa_kaoqin b on a.user_id=b.user_id;
    这样页面速度会快些,然后再精简些。直接取出当月的所有数据,因为你统计的就是一个月嘛。比如说:考勤、休息、请假等表;然后再对数据进行筛选;这样,相当于你只进行了三次查询。速度会飞起来。
      

  4.   

    你那个要实现的效果用个多维数组来做比你循环读数据库来做简单多.
    你可以把三个表依次读出来,然后依据三次的数据来组多维数组..
    好比说做一个正常的考情情况,
    array(
        'userID'=>array(
            'dateInt'=>array(
                   'morningShiftBegin'=>true,
                   'morningShiftEnd'=>false,
                   ......
             ),
        )
    );
    然后再做一个考情异常之类的数组,做显示,先看正常里面有没有,没有调用异常的,其他人估计还有更好的办法来做
      

  5.   

    每一项都查当然慢。
    可以直接把整个表读出来。
    然后再用php去取,不用每次都连db查询啊。