我正在制定一个计划,根据每个员工的出勤情况计算他们的膳食津贴。这是我现在掌握的数据,一个叫做出勤率的表格。这个表格是由我导入的csv文件填充的,下面是我导入csv的代码
function uploadData()
{
$fp = fopen($_FILES['userfile']['tmp_name'],'r') or die("can't open file");
// Ignore header line
$header = fgetcsv($fp);
// Array to store the partial records
$attendance= [];
while($csv_line = fgetcsv($fp))
{
// Key to identify first part of record (Name and date)
$key = $csv_line[1]."/".$csv_line[3];
if ( isset($attendance[$key]) ){
$start = $attendance[$key];
// Extract data from first part of record and add in end date from current row
$data = array(
'id_attend' => $start[0] ,
'emp_code' => $start[1],
'emp_name' => $start[2],
'date' => $start[3],
'time_in' => $start[4],
'time_out' => $csv_line[4],
);
$data['crane_features']=$this->db->insert('attendance', $data);
// Remove partial record
unset($attendance[$key]);
}
else {
// Store partial record
$attendance[$key] = $csv_line;
}
}
fclose($fp) or die("can't close file");
$data['success']="success";
}
这是我的table
| id_attend | emp_code | emp_name | date | time_in | time_out |
----------------------------------------------------------------------------------
| 0001 | brw | brown |01.01.2001| 07.00 | 20.00 |
| 0002 | cny | cony |01.01.2001| 07.00 | 20.00 |
----------------------------------------------------------------------------------
我需要计算他们参加了多少天,并把它保存在我的数据库里。我已经有一张table作为一个容器,叫做零用钱
------------------------------------------------------------------------
|id_allowance(auto increment)|emp_code|emp_name|days_attended|allowance|
------------------------------------------------------------------------
| 0001 | brw | brown | 1 | 30.00 |
| 0002 | cny | cony | 1 | 30.00 |
------------------------------------------------------------------------
是否有任何方式的津贴将自动生成和更新每次我导入新的csv文件?因为津贴表本来应该是空的,真的要看考勤表
1条答案
按热度按时间5cnsuln71#
为此,您需要在mysql中创建一个触发器,以便在考勤表中插入新数据时,自动生成并运行津贴表查询。
你想这样写触发器,这里我把静态值作为余量,但你可以把自己的计算值放在那里。