false, 'message' => 'スタッフIDが指定されていません']); exit; } $s_id = $data['s_id']; $conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { echo json_encode(['success' => false, 'message' => 'DB接続失敗: '.$conn->connect_error]); exit; } $conn->set_charset("utf8"); function nullIfEmpty($v){ return ($v === '' ? null : $v); } $conn->begin_transaction(); try { // --- staff_info --- $s_name = $data['s_name'] ?? ''; $s_furi = $data['s_furi'] ?? ''; $s_sex = $data['s_sex'] ?? ''; $s_from = $data['s_from'] ?? ''; $s_birth = nullIfEmpty($data['s_birth'] ?? ''); $s_stage = nullIfEmpty($data['s_stage'] ?? ''); $stmt = $conn->prepare(" UPDATE staff_info SET s_name=?, s_furi=?, s_sex=?, s_from=?, s_birth=?, s_stage=? WHERE s_id=?"); $stmt->bind_param("sssssss", $s_name,$s_furi,$s_sex,$s_from,$s_birth,$s_stage,$s_id); $stmt->execute(); $stmt->close(); // --- a_info --- $a_nickname = $data['a_nickname'] ?? ''; $a_jp = $data['a_jp'] ?? ''; $a_religion = $data['a_religion'] ?? ''; $a_comment = $data['a_comment'] ?? ''; $a_personality= $data['a_personality'] ?? ''; $a_jplevel = $data['a_jplevel'] ?? ''; $a_height = nullIfEmpty($data['a_height'] ?? ''); $a_weight = nullIfEmpty($data['a_weight'] ?? ''); $a_shirt = $data['a_shirt'] ?? ''; $a_shoes = nullIfEmpty($data['a_shoes'] ?? ''); $a_smoker = $data['a_smoker'] ?? 0; $a_licence1 = $data['a_licence1'] ?? 0; $a_licence2 = $data['a_licence2'] ?? 0; $a_licence3 = $data['a_licence3'] ?? 0; $a_licence4 = $data['a_licence4'] ?? 0; $a_licence5 = $data['a_licence5'] ?? 0; $a_licence6 = $data['a_licence6'] ?? 0; $a_licence7 = $data['a_licence7'] ?? 0; $a_licence8 = $data['a_licence8'] ?? 0; $a_licence9 = $data['a_licence9'] ?? 0; $a_licence10 = $data['a_licence10'] ?? 0; $a_licence11 = $data['a_licence11'] ?? 0; $stmtCheck = $conn->prepare("SELECT COUNT(*) as cnt FROM a_info WHERE s_id=?"); $stmtCheck->bind_param("s", $s_id); $stmtCheck->execute(); $resCheck = $stmtCheck->get_result(); $rowCheck = $resCheck->fetch_assoc(); $stmtCheck->close(); if($rowCheck['cnt'] > 0){ $stmt = $conn->prepare(" UPDATE a_info SET a_nickname=?, a_jp=?, a_religion=?, a_comment=?, a_personality=?, a_jplevel=?, a_height=?, a_weight=?, a_shirt=?, a_shoes=?, a_smoker=?, a_licence1=?, a_licence2=?, a_licence3=?, a_licence4=?, a_licence5=?, a_licence6=?, a_licence7=?, a_licence8=?, a_licence9=?, a_licence10=?, a_licence11=? WHERE s_id=?"); $stmt->bind_param( "sssssssisssiiiiiiiiiiis", $a_nickname,$a_jp,$a_religion,$a_comment, $a_personality,$a_jplevel,$a_height,$a_weight,$a_shirt,$a_shoes, $a_smoker, $a_licence1,$a_licence2,$a_licence3,$a_licence4,$a_licence5, $a_licence6,$a_licence7,$a_licence8,$a_licence9,$a_licence10,$a_licence11, $s_id ); $stmt->execute(); $stmt->close(); } else { $stmt = $conn->prepare(" INSERT INTO a_info ( s_id, a_nickname, a_jp, a_religion, a_comment, a_personality, a_jplevel, a_height, a_weight, a_shirt, a_shoes, a_smoker, a_licence1, a_licence2, a_licence3, a_licence4, a_licence5, a_licence6, a_licence7, a_licence8, a_licence9, a_licence10, a_licence11 ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); $stmt->bind_param( "ssssssssisssiiiiiiiiiii", $s_id, $a_nickname,$a_jp,$a_religion,$a_comment, $a_personality,$a_jplevel,$a_height,$a_weight,$a_shirt,$a_shoes, $a_smoker, $a_licence1,$a_licence2,$a_licence3,$a_licence4,$a_licence5, $a_licence6,$a_licence7,$a_licence8,$a_licence9,$a_licence10,$a_licence11 ); $stmt->execute(); $stmt->close(); } // --- Secret Note info --- $a_lang_level = $data['a_lang_level'] ?? ''; $a_submit = $data['a_submit'] ?? ''; $stmtCheck = $conn->prepare("SELECT COUNT(*) as cnt FROM secret_note WHERE s_id=?"); $stmtCheck->bind_param("s", $s_id); $stmtCheck->execute(); $resCheck = $stmtCheck->get_result(); $rowCheck = $resCheck->fetch_assoc(); $stmtCheck->close(); if ($rowCheck['cnt'] > 0) { $stmt = $conn->prepare(" UPDATE secret_note SET a_lang_level = ?, a_submit = ? WHERE s_id = ? "); $stmt->bind_param("sss", $a_lang_level, $a_submit, $s_id); $stmt->execute(); $stmt->close(); } else { $stmt = $conn->prepare(" INSERT INTO secret_note (s_id, a_lang_level, a_submit) VALUES (?, ?, ?) "); $stmt->bind_param("sss", $s_id, $a_lang_level, $a_submit); $stmt->execute(); $stmt->close(); } // --- Log activity --- $username = $data['username'] ?? 'unknown'; $phpfile = basename(__FILE__); $dt = new DateTime('now', new DateTimeZone('Asia/Tokyo')); $log_date = $dt->format('Y-m-d'); $time_now = $dt->format('H:i:s'); $log_text = "「{$time_now}/{$s_id}/{$username}/{$phpfile}」\n"; $stmt = $conn->prepare("SELECT log_details FROM user_log WHERE log_date = ?"); $stmt->bind_param("s", $log_date); $stmt->execute(); $res = $stmt->get_result(); $row = $res->fetch_assoc(); $stmt->close(); if ($row) { $new_text = $row['log_details'] . $log_text; $stmt = $conn->prepare("UPDATE user_log SET log_details = ? WHERE log_date = ?"); $stmt->bind_param("ss", $new_text, $log_date); $stmt->execute(); $stmt->close(); } else { $stmt = $conn->prepare("INSERT INTO user_log (log_date, log_details) VALUES (?, ?)"); $stmt->bind_param("ss", $log_date, $log_text); $stmt->execute(); $stmt->close(); } $conn->commit(); $conn->close(); echo json_encode(['success'=>true,'message'=>'農業スタッフ情報を更新しました']); } catch(Exception $e){ $conn->rollback(); $conn->close(); echo json_encode(['success'=>false,'message'=>'更新中にエラーが発生しました: '.$e->getMessage()]); } ?>