У меня есть CSV-файл с этой информацией:
ID | Name | Date |Time | State |
1 | Karl | 7/2/2019 |07:00 | OverTime In |
1 | Karl | 7/2/2019 |16:00 | OverTime Out |
Я хочу вставить эту информацию в таблицу посещаемости, чтобы получить следующий результат:
ID | Name | Date | OverTime In | OVerTime Out |
1 | Karl | 7/2/2019 | 07:00 | 16:00 |
Теперь я могу загрузить файл на посещаемость с указанием времени входа, но у меня возникают проблемы с обновлением времени в той же строке, когда он обнаруживает, что в таблице уже существует та же дата. На моем столе только 00:00.
$handle = fopen($temp_name, 'r');
while (($myData = fgetcsv($handle, 1000, ',')) != FALSE) {
$id = $myData[0];
$timestamp = $myData[3];
$splitTimeStamp = explode(" ",$timestamp);
$date = $splitTimeStamp[0];
$time = $splitTimeStamp[1];
$state = $myData[5];
$newdate = str_replace('/', '-', $date);
$gooddate = date('Y-m-d',strtotime($newdate));
$sql = "SELECT * FROM for_approval WHERE employee_id = '$id' AND date_overtime = '$gooddate'";
$query = $conn->query($sql);
$srow = $query->fetch_assoc();
if($query->num_rows == 0 && $state = 'OverTime In' ){
$query = "INSERT INTO for_approval (employee_id,overtime_in,date_overtime) VALUES ('$id','$time','$gooddate')";
$conn->query($query);
}else if($query->num_rows > 0 && $state = 'OverTime Out'){
$query = "UPDATE for_approval SET overtime_out ='' WHERE date_overtime";
$conn->query($query);
}else{
$_SESSION['error'] = 'Employee OT for the day exist';
}
}
if($conn->query($query)){
$_SESSION['success'] = 'File uploaded successfully';
}else{
$_SESSION['error'] = $conn->error;
}
Я хочу вставить состояние, имеющее значения OverTime Out, в строки с одинаковой датой и значением OverTime In