Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为每个用户获取数据以计算夜班_Php_Mysql_Codeigniter - Fatal编程技术网

Php 如何为每个用户获取数据以计算夜班

Php 如何为每个用户获取数据以计算夜班,php,mysql,codeigniter,Php,Mysql,Codeigniter,我想计算夜班,但不使用固定的轮班时间 因为我有更多的人,而且班次也不时地改变 表\u名称:“checkinout” 我希望结果是这样的,这样我就可以完成计算 表名称:“inout” 所以我在mysql中使用了group_concat $query=$this->db->query("select userid, DATE_FORMAT(checktime, '%Y-%m-%d') as check_date, GROUP_CONCAT(DISTINCT DATE_

我想计算夜班,但不使用固定的轮班时间 因为我有更多的人,而且班次也不时地改变

表\u名称:“checkinout”


我希望结果是这样的,这样我就可以完成计算

表名称:“inout”


所以我在mysql中使用了group_concat

$query=$this->db->query("select userid,
    DATE_FORMAT(checktime, '%Y-%m-%d') as check_date,
    GROUP_CONCAT(DISTINCT DATE_FORMAT(checktime, '%Y-%m-%d %H:%i:%s')ORDER BY DATE_FORMAT(checktime, '%Y-%m-%d %H:%i:%s')) AS check_time
    from checkinout 
    group by userid,check_date
    order by userid
    ");
但结果和我需要的不一样

-------------------------------------------------
user_id  | check_date    | check_inout  
--------------------------------------------------
 3       |  2014-10-01   | 2014-10-01 23:50:00 , 2014-10-01 23:51:16
 3       |  2014-10-02   | 2014-10-02 08:05:20 , 2014-10-02 23:42:13
 3       |  2014-10-03   | 2014-10-03 07:58:00
 4       |  2014-10-01   | 2014-10-01 08:00:41 , 2014-10-01 12:40:32 , 2014-10-01 18:11:04
 4       |  2014-10-02   | 2014-10-02 00:20:35
 5       |  2014-10-02   | 2014-10-02 07:49:02 , 2014-10-02 14:33:38
 6       |  2014-10-02   | 2014-10-02 13:08:11 , 2014-10-02 17:00:54 , 2014-10-02 23:00:00 
 6       |  2014-10-03   | 2014-10-03 05:15:06


有可能吗

为什么用户_id 3在
2014-10-01 23:50:00上有一个i类签入,一分钟后又有一个i类签入?这仅仅是虚拟数据还是我不了解什么?而且,即使你得到了想要的结果,你打算如何区分签入和签出之间的区别?直接连接到指纹设备的access db的表checkinout,因此,我使用odbc通过myql连接到此表,以完成使用php和mysql的工作。任何用户都可以将其保存的手指直接放在此表中,这样您就可以发现有些人有多个签入或签出,但我对此没有问题。我只想完成这个结果
$query=$this->db->query("select userid,
    DATE_FORMAT(checktime, '%Y-%m-%d') as check_date,
    GROUP_CONCAT(DISTINCT DATE_FORMAT(checktime, '%Y-%m-%d %H:%i:%s')ORDER BY DATE_FORMAT(checktime, '%Y-%m-%d %H:%i:%s')) AS check_time
    from checkinout 
    group by userid,check_date
    order by userid
    ");
-------------------------------------------------
user_id  | check_date    | check_inout  
--------------------------------------------------
 3       |  2014-10-01   | 2014-10-01 23:50:00 , 2014-10-01 23:51:16
 3       |  2014-10-02   | 2014-10-02 08:05:20 , 2014-10-02 23:42:13
 3       |  2014-10-03   | 2014-10-03 07:58:00
 4       |  2014-10-01   | 2014-10-01 08:00:41 , 2014-10-01 12:40:32 , 2014-10-01 18:11:04
 4       |  2014-10-02   | 2014-10-02 00:20:35
 5       |  2014-10-02   | 2014-10-02 07:49:02 , 2014-10-02 14:33:38
 6       |  2014-10-02   | 2014-10-02 13:08:11 , 2014-10-02 17:00:54 , 2014-10-02 23:00:00 
 6       |  2014-10-03   | 2014-10-03 05:15:06