prepare("INSERT INTO cinemas (place, name, address, color) VALUES (?, ?, ?, ?)"); $stmt->execute([$place, $name, $address, $color]); $message = '影院添加成功'; } } // ---------- 处理编辑 ---------- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'edit') { $id = (int)$_POST['id']; $place = trim($_POST['place'] ?? ''); $name = trim($_POST['name'] ?? ''); $address = trim($_POST['address'] ?? ''); $color = trim($_POST['color'] ?? '#888888'); if (!preg_match('/^#[a-fA-F0-9]{6}$/', $color)) { $color = '#888888'; } if (empty($name)) { $error = '影院名称不能为空'; } else { $stmt = $db->prepare("UPDATE cinemas SET place = ?, name = ?, address = ?, color = ? WHERE id = ?"); $stmt->execute([$place, $name, $address, $color, $id]); $message = '影院信息已更新'; } } // ---------- 处理删除 ---------- if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) { $id = (int)$_GET['id']; // 检查是否有电影关联 $stmt = $db->prepare("SELECT COUNT(*) FROM movies WHERE cinema_id = ?"); $stmt->execute([$id]); $count = $stmt->fetchColumn(); if ($count > 0) { $confirm = isset($_GET['confirm']) ? $_GET['confirm'] : ''; if ($confirm !== 'yes') { $error = "该影院关联了 {$count} 部电影,删除后这些电影的影院信息将置空。确定删除?请 点击确认删除"; } else { $stmt = $db->prepare("DELETE FROM cinemas WHERE id = ?"); $stmt->execute([$id]); $message = '影院已删除,关联电影已置空影院信息'; } } else { $stmt = $db->prepare("DELETE FROM cinemas WHERE id = ?"); $stmt->execute([$id]); $message = '影院已删除'; } } // ---------- 获取列表 ---------- $cinemas = getCinemas(); // ---------- 获取编辑数据 ---------- $edit_data = null; if (isset($_GET['action']) && $_GET['action'] === 'edit' && isset($_GET['id'])) { $id = (int)$_GET['id']; $stmt = $db->prepare("SELECT * FROM cinemas WHERE id = ?"); $stmt->execute([$id]); $edit_data = $stmt->fetch(); if (!$edit_data) { header('Location: cinemas.php'); exit; } } // ---------- 预设50色 ---------- $preset_colors = [ // 红色系 (5) '#e74c3c', '#c0392b', '#e67e22', '#d35400', '#f39c12', // 橙色系 (3) '#f1c40f', '#f7dc6f', '#f5b041', // 黄色系 (3) '#f4d03f', '#f9e79f', '#f8c471', // 绿色系 (5) '#2ecc71', '#27ae60', '#1abc9c', '#16a085', '#58d68d', // 青色系 (4) '#48c9b0', '#45b39d', '#82e0aa', '#a3e4d7', // 蓝色系 (7) '#3498db', '#2980b9', '#2e86c1', '#5dade2', '#85c1e9', '#5499c7', '#aed6f1', // 紫色系 (5) '#9b59b6', '#8e44ad', '#af7ac5', '#bb8fce', '#d2b4de', // 粉色系 (4) '#e84393', '#fd79a8', '#e91e63', '#f06292', // 灰色系 (6) '#95a5a6', '#7f8c8d', '#bdc3c7', '#d5dbdb', '#aab7b8', '#99a3a4', // 棕色/米色系 (4) '#a67c52', '#8d6e63', '#d4a574', '#c9a87c', // 其他 (4) '#00b894', '#0984e3', '#6c5ce7', '#fd79a8' ]; // 只取前50个,如果有重复或不足可调整,但这里正好约50个(实际46个,再补几个) $extra = ['#2d3436', '#636e72', '#b2bec3', '#dfe6e9', '#fab1a0', '#e17055', '#00cec9', '#a29bfe']; $preset_colors = array_merge($preset_colors, $extra); $preset_colors = array_slice($preset_colors, 0, 50); // 确保正好50个 ?>