Автоматически добавлять новую запись в таблицу codeigniter

0

Я делаю программу, которая учитывает пособие на питание для каждого сотрудника, исходя из их посещаемости. Вот данные, которые у меня есть сейчас, таблица, называемая посещаемостью. Эта таблица заполняется из импорта 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";

}

и вот мой стол


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

Мне нужно подсчитать, сколько дней они посещают и хранят в моей базе данных. У меня уже есть таблица в качестве контейнера с надбавкой

------------------------------------------------------------------------
|id_allowance(auto increment)|emp_code|emp_name|days_attended|allowance|
------------------------------------------------------------------------
|          0001              |   brw  |  brown |       1     |  30.00  |
|          0002              |   cny  |  cony  |       1     |  30.00  |
------------------------------------------------------------------------

есть ли способ, который будет автоматически генерироваться и обновляться каждый раз, когда я импортирую новый файл csv? потому что таблица допущений должна быть пуста в первую очередь и действительно зависит от таблицы посещаемости

  • 0
    Этот вопрос не имеет отношения к PHP или CodeIgniter. Вы можете сделать это с помощью пользовательского запроса, чтобы получить всю необходимую информацию, используя таблицу просмотра.
  • 0
    мой плохой, извините за ошибку. это просмотр таблицы является ответом? потому что мне также нужны эти данные в моей базе данных, а не только для функции представления @Xartrick
Показать ещё 3 комментария
Теги:
database
codeigniter

1 ответ

2
Лучший ответ

Для этого вам нужно создать триггер в MySQL, поэтому, когда новые данные будут вставляться в таблицу посещаемости, тот же запрос автоматически генерирует и запускает таблицу разрешений.

DROP TRIGGER IF EXISTS allowance_insert_trigger;
DELIMITER $$
 CREATE TRIGGER allowance_insert_trigger
 AFTER INSERT ON attendance FOR EACH ROW
 begin
   DECLARE days_attandence varchar(10);
   SELECT count(*) INTO days_attandence FROM attendance WHERE emp_code=NEW.emp_code GROUP BY date;
   INSERT INTO 'allowance' ( 'emp_code', 'emp_name', 'days_attended', 'allowance') VALUES ( NEW.emp_code, NEW.emp_name, days_attandence, '30.00');
 END;
$$
DELIMITER ;

Вы хотите написать триггер, как это, и здесь я поставил статическое значение для пособия, но вы можете разместить свое собственное расчетное значение.

  • 0
    формула дней посещений * общее пособие (мы получили общее пособие из таблицы, содержащей число)
  • 0
    Су, вы можете мне помочь? ._. @ Парт Вирамгама
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню