2016-05-14 41 views
0

时间recods表我在我的表从选定的范围添加列值在代码点火器

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 
+0

你应该标记一些答案为正确@kev_m –

回答

1

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

Here one column is later updated with new values in php. This may be helpful.

--------------更新回答------------

那么你的阵列应该像

<?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

我已经更新了这个问题,所以它会更容易理解。谢谢。 :) –

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); 

我希望它会帮助你:)

+0

我已经更新了问题,所以它会更容易理解。谢谢。 :) –