✏️ 编辑电影
修改「= h($movie['title']) ?>」的信息
query("SELECT * FROM persons ORDER BY name"); $all_persons = $stmt->fetchAll(); $error = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $title = trim($_POST['title'] ?? ''); $info = trim($_POST['info'] ?? ''); $watch_date = $_POST['watch_date'] ?? ''; $cinema_id = $_POST['cinema_id'] ?? ''; $viewer_selects = $_POST['viewer_select'] ?? []; $viewer_news = $_POST['viewers_new'] ?? []; $poster_crop = $_POST['poster_crop'] ?? ''; $ticket_crop = $_POST['ticket_crop'] ?? ''; $photo_crops = $_POST['photo_crop'] ?? []; // 电影院:选择已有影院、新建影院或留空 $cinema_id = resolveCinemaId( $cinema_id, trim($_POST['new_cinema_place'] ?? ''), trim($_POST['new_cinema_name'] ?? ''), trim($_POST['new_cinema_address'] ?? '') ); if (empty($title)) { $error = '请输入电影名称'; } elseif (empty($watch_date)) { $error = '请选择观影日期'; } else { // ----- 海报:裁剪结果优先,其次上传新文件 ----- $poster_path = $movie['poster_path']; if (!empty($poster_crop)) { $new_path = saveBase64Image($poster_crop, POSTER_DIR, 'poster'); if ($new_path) { deleteStoredFile($poster_path); $poster_path = $new_path; } else { $error = '海报裁剪保存失败,请重试'; } } else { $uploaded = uploadImageFile('poster', POSTER_DIR, 'uploads/posters/'); if ($uploaded) { deleteStoredFile($poster_path); $poster_path = $uploaded; } } // ----- 票根:裁剪结果优先,其次上传新文件 ----- $ticket_path = $movie['ticket_path']; if (!empty($ticket_crop)) { $new_path = saveBase64Image($ticket_crop, TICKET_DIR, 'ticket'); if ($new_path) { deleteStoredFile($ticket_path); $ticket_path = $new_path; } else { $error = '票根裁剪保存失败,请重试'; } } else { $uploaded = uploadImageFile('ticket', TICKET_DIR, 'uploads/tickets/'); if ($uploaded) { deleteStoredFile($ticket_path); $ticket_path = $uploaded; } } // 前面处理没有错误,才更新数据库 if (empty($error)) { // 更新电影基本信息 $stmt = $db->prepare(" UPDATE movies SET title = ?, info = ?, poster_path = ?, ticket_path = ?, cinema_id = ?, watch_date = ? WHERE id = ? "); $stmt->execute([$title, $info, $poster_path, $ticket_path, $cinema_id, $watch_date, $id]); // ----- 合影:替换已裁剪的图片 ----- if (!empty($photo_crops)) { foreach ($photo_crops as $photo_id => $base64_data) { if (empty($base64_data)) continue; $stmt = $db->prepare("SELECT photo_path FROM movie_photos WHERE id = ? AND movie_id = ?"); $stmt->execute([$photo_id, $id]); $old = $stmt->fetch(); if ($old) { $new_path = saveBase64Image($base64_data, PHOTO_DIR, 'photo'); if ($new_path) { deleteStoredFile($old['photo_path']); $stmt = $db->prepare("UPDATE movie_photos SET photo_path = ? WHERE id = ?"); $stmt->execute([$new_path, $photo_id]); } } } } // ----- 新增合影照片 ----- uploadMultiplePhotos('new_photos', $id); // ----- 一起看的人 ----- $stmt = $db->prepare("DELETE FROM viewers WHERE movie_id = ?"); $stmt->execute([$id]); linkViewers($id, resolvePersonIds($viewer_selects, $viewer_news)); header('Location: detail.php?id=' . $id); exit; } } } // 准备观影人数据 $current_person_ids = array_column($movie['viewers'], 'person_id'); $current_person_ids = array_filter($current_person_ids, function($v) { return $v > 0; }); if (empty($current_person_ids)) { $current_person_ids = [0]; } ?>
修改「= h($movie['title']) ?>」的信息