$val) { // Check for rules: r_{id}_k, r_{id}_u, r_{id}_p if (preg_match('/^r_(\d+)_(k|u|p)$/', $key, $matches)) { $id = $matches[1]; $type = $matches[2]; $rules_data[$id][$type] = $val; } // Check for sla: sla_{id}_score, sla_{id}_comment elseif (preg_match('/^sla_(\d+)_(score|comment)$/', $key, $matches)) { $id = $matches[1]; $type = $matches[2]; $sla_data[$id][$type] = $val; } } $rules_json = json_encode($rules_data, JSON_UNESCAPED_UNICODE); $sla_json = json_encode($sla_data, JSON_UNESCAPED_UNICODE); } $sql = "INSERT INTO it_assessments (assess_year, hr_cid, fullname, position, department, computer_use, rules_data, sla_data) VALUES (:assess_year, :hr_cid, :fullname, :position, :department, :computer_use, :rules_data, :sla_data)"; $params = [ ':assess_year' => $assess_year, ':hr_cid' => $cid, ':fullname' => $fullname, ':position' => $position, ':department' => $department, ':computer_use' => $computer_use, ':rules_data' => $rules_json, ':sla_data' => $sla_json ]; try { $stmt = $pdo_assess->prepare($sql); $stmt->execute($params); $_SESSION['success_msg'] = "บันทึกข้อมูลเรียบร้อยแล้ว"; } catch (PDOException $e) { if ($e->errorInfo[1] == 1062) { $_SESSION['error_msg'] = "ท่านได้ทำแบบประเมินสำหรับปีนี้ไปแล้ว"; } else { $_SESSION['error_msg'] = "เกิดข้อผิดพลาดในการบันทึกข้อมูล: " . $e->getMessage(); } } header("location: ../form.php"); exit; } else { header("location: ../form.php"); exit; }