添加代码点火器中选定范围的列值

问题描述 投票:0回答:2

我有时间记录表

date
time in 
time out 
break in
break out
total_time 

我表中的字段。我有这个sql查询

public function showattendance(){

    $start      = $this->input->post('DATE_FROM');
    $end        = $this->input->post('DATE_TO');
    $employee   = $this->input->post('ID_NUM');

    $sql = "SELECT * FROM `attendance` WHERE (DATE BETWEEN '".$start."' AND '".$end."') AND (ID_NUM = '".$employee."')";

    $query = $this->db->query($sql);

    return $query->result();
}

现在我想做的就是当我已经选择了我选择的日期之间的行时,我想添加从

total_time
列中选择的数据。

例如我有一个数组

array = (
ID[0] => '1' , TOTAL_TIME[0]=>'09:30'
ID[1] => '2' , TOTAL_TIME[1]=>'07:30'
ID[2] => '3' , TOTAL_TIME[2]=>'08:30'
ID[3] => '4' , TOTAL_TIME[3]=>'09:00'
ID[4] => '5' , TOTAL_TIME[4]=>'05:45'

);

我想做的就是添加

TOTAL_TIME[0]+TOTAL_TIME[1]+TOTAL_TIME[2]+TOTAL_TIME[3]+TOTAL_TIME[4] = $value
php mysql time sum codeigniter-3
2个回答
1
投票

当您将结果转换为数组时,这样做变得非常简单。这可能会帮助您解决问题。

此处的一列稍后会使用 php 中的新值进行更新。这可能会有所帮助。

-------------- 更新答案 ------------

那么你的数组应该是这样的

<?php
$x =  array(
    array( ID => '1' , TOTAL_TIME =>'09:30'),
    array( ID => '2' , TOTAL_TIME =>'07:30'),
    array( ID => '3' , TOTAL_TIME =>'08:30'),
    array( ID => '4' , TOTAL_TIME =>'09:00'),
    array( ID => '5' , TOTAL_TIME =>'05:45'));

$total;
foreach($x as $y){
    $total+=$y["TOTAL_TIME"];
}
echo "Total Time = ".$total;

?>

这样你就可以得到你的总时间了。


0
投票

据我从您的问题中了解到,您需要添加从 start_date 到 end_date 的期间才能运行此代码:

$res = $this->showattendance();// this is from your code
$this->db->update("time-recods");
$this->db->set("total_time",date_diff($res->time_in,$res->time_out));
$this->db->where('ID_NUM',$employee); 

我希望它能帮助你:)

© www.soinside.com 2019 - 2024. All rights reserved.