<?php
require_once("Functions/Error/errorHandler.php");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$title = isset($_POST['title']) && trim($_POST['title']) !== '' ? trim($_POST['title']) : null;
$duration = isset($_POST['duration']) && is_numeric($_POST['duration']) && (int)$_POST['duration'] > 0 ? (int)$_POST['duration'] : null;
$ageLimit = isset($_POST['ageLimit']) && $_POST['ageLimit'] !== '' ? (int)$_POST['ageLimit'] : null;
$uploaded = isset($_POST['uploaded']) && $_POST['uploaded'] === 'on' ? 1 : 0;
$serialNumber = isset($_POST['serialNumber']) && trim($_POST['serialNumber']) !== '' ? trim($_POST['serialNumber']) : null;
$imageURL = isset($_POST['imageURL']) && trim($_POST['imageURL']) !== '' ? trim($_POST['imageURL']) : null;
$issuedDate = isset($_POST['issuedDate']) && $_POST['issuedDate'] !== '' ? $_POST['issuedDate'] : null;
$releaseYear = isset($_POST['releaseYear']) && is_numeric($_POST['releaseYear']) ? (int)$_POST['releaseYear'] : null;
$overview = isset($_POST['overview']) && trim($_POST['overview']) !== '' ? trim($_POST['overview']) : null;
$languages = isset($_POST['fk_languages']) && is_array($_POST['fk_languages']) ? $_POST['fk_languages'] : [];
if ($title === null || $duration === null || $serialNumber === null || count($languages) === 0) {
setError("Please fill in all required fields: title, duration (>0), serial number and select at least one language.");
} else {
$query = "INSERT INTO citeLeParis_film (title, duration, ageLimit, uploaded, serialNumber, imagePath, issuedDate, releaseYear, overview) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = mysqli_prepare($dbc, $query);
if ($stmt) {
mysqli_stmt_bind_param(
$stmt,
"siissssis",
$title,
$duration,
$ageLimit,
$uploaded,
$serialNumber,
$imageURL,
$issuedDate,
$releaseYear,
$overview
);
}
if ($stmt) {
if (mysqli_stmt_execute($stmt)) {
$filmID = mysqli_insert_id($dbc);
$langQuery = "INSERT INTO citeLeParis_hasLanguage (pkfk_film, pkfk_availableLanguage) VALUES (?, ?)";
$langStmt = mysqli_prepare($dbc, $langQuery);
if ($langStmt) {
foreach ($languages as $langID) {
mysqli_stmt_bind_param($langStmt, "ii", $filmID, $langID);
mysqli_stmt_execute($langStmt);
}
mysqli_stmt_close($langStmt);
}
} else {
setError("Database error: " . mysqli_error($dbc));
}
mysqli_stmt_close($stmt);
} else {
setError("Failed to prepare the film insert statement.");
}
}
}
include("Functions/Error/errorDisplay.php");
?>
<section id="film-form-container">
<h2>Add Film</h2>
<form method="post" action="" class="film-form">
<label for="title">Film Title:</label>
<input type="text" name="title" id="title" required>
<label for="fk_languages">Languages:</label>
<select name="fk_languages[]" id="fk_languages" multiple required>
<?php
$langQuery = "SELECT pk_availableLanguage, languageName FROM citeLeParis_availableLanguage";
$langResult = mysqli_query($dbc, $langQuery);
while ($lang = mysqli_fetch_assoc($langResult)) {
echo "<option value='" . htmlspecialchars($lang['pk_availableLanguage']) . "'>" . htmlspecialchars($lang['languageName']) . "</option>";
}
?>
</select>
<label for="duration">Duration (in minutes):</label>
<input type="number" name="duration" id="duration" min="1" required>
<label for="ageLimit">Age Limit (optional):</label>
<input type="number" name="ageLimit" id="ageLimit" min="0">
<label for="uploaded">Uploaded (optional, default 1):</label>
<input type="checkbox" name="uploaded" id="uploaded" checked>
<label for="serialNumber">Serial Number:</label>
<input type="text" name="serialNumber" id="serialNumber" required>
<label for="imageURL">Poster Image URL:</label>
<input type="url" name="imageURL" id="imageURL">
<label for="issuedDate">Issued Date (optional):</label>
<input type="datetime-local" name="issuedDate" id="issuedDate">
<label for="releaseYear">Release Year (optional):</label>
<input type="number" name="releaseYear" id="releaseYear" min="1800" max="2100">
<label for="overview">Overview (optional):</label>
<textarea name="overview" id="overview" rows="4"></textarea>
<input type="submit" value="Add Film">
</form>
</section>