I am making a very simple movie database, with the possibility to update the movies that are in it. All you have to do is fill in the fields underneath the table. However, when you fill in the id and only one other field, like film_id, the description etc. are erased from the table. How do i make sure that it's possible to change only one thing?
The code for the page:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<?php
session_start(); //Start sessie.
function is_logged() {
if (isset($_SESSION['username'])) return true;
return false; //De gebruikersnaam wordt gecontroleerd
}
if(!is_logged()){
header("Location: sign-in.php"); //Als de gebruiker naar overzichtlogin.php 
gaat, zonder dat hij of zij is ingelogd, worden ze doorgestuurd naar de 
login pagina.
}
require_once('db_const.php'); //De gegevens voor het maken van de verbinding 
met de database staan in dit bestand gedeclareerd.
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if  (!$mysqli){
die("Connection failed: ".mysqli_connect_error()); //Als de verbinding niet 
lukt zal deze niet werken.
}
?>
 <?php $current = 'secured'; ?> <!-- Om aan te geven dat men zich op de 
beveiligde overzichtspagina bevindt, wordt gebruik gemaakt van deze 
variabele. Current krijgt nu de waarde 'secured', waardoor de button waar 
'secured' staat een kleur krijgt. -->
<div class="header">
<?php
if(isset($_SESSION['username'])){
require_once("headersecured.php"); //Indien de gebruiker ingelogd is, wordt 
'headersecured.php' gebruikt als header.
}else{
require_once("header.php"); //Indien de gebruiker niet is ingelogd, wordt 
header.php gebruikt als header.
}
?>
</div>
<h1>Filmoverzicht</h1>
<?php
$sql = "SELECT film_id, title, description, release_year, rating FROM 
 films"; //De gewenste gegevens uit de database worden geselecteerd.
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
echo "<table style='border: solid 1px grey; margin-left: auto; margin-right: 
auto; margin-top:50px;'><tr><th>ID</th> <th>Titel</th> <th>Beschrijving</th> 
<th>Jaar</th> <th>Rating</th> <th> </th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>" .$row["film_id"] . "<td>"  .$row["title"] . "<td>" . 
$row["description"] . "<td>" . $row["release_year"]. "<td> " . 
$row["rating"]. "<td> " . '<td><a class="alert" href="deletemovie.php?
id='.$row['film_id'].'" >
</i>'?> VERWIJDER <?php '</a></td>';
} //De beschikbare gegevens worden weergegeven.
echo "</table>";
} else {
echo "0 results";
}
?>
<br><br>
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>"> <!--De 
bewerkfunctie wordt op dezelfde pagina uitgevoerd.-->
<h2>Films bewerken</h2>
<input name="film_id" required="required" placeholder="ID">
<input name="title" placeholder="Titel film">
<textarea id="textarea" name="description" cols="20" rows="5" 
placeholder="Beschrijving"></textarea>
<input name="release_year" placeholder="Uitkomstjaar">
<input name="rating" placeholder="Beoordeling">
<input id="submit" name="submit" type="submit" value="Wijzigen"> <!-- In 
deze 
invulvelden kunnen nieuwe gegevens worden ingevoerd, zodat de films worden 
aangepast. -->
<?php
if (isset($_POST['submit'])) {
$film = $_POST["film_id"]; //Slaat de gegevens voor het ingevoerde ID op in 
een 
variabele.
$title = $_POST["title"]; //Slaat de gegevens voor de ingevoerde titel op in 
een 
variabele.
$description = $_POST["description"]; //Slaat de gegevens voor de ingevoerde 
beschrijving op in een variabele.
$year = $_POST["release_year"]; //Slaat de gegevens voor het ingevoerde jaar 
op 
in een variabele.
$rating = $_POST["rating"]; //Slaat de gegevens voor de ingevoerde rating op 
in een variabele.
$sql = "UPDATE films SET film_id = '$film', title = '$title', description = 
'$description', release_year = '$year', rating = '$rating' WHERE film_id = 
$film"; //De tabel 'films' in MySQL wordt geselecteerd, de gegevens die in 
de 
variabelen zijn opgeslagen worden gewijzigd in de database.
if (mysqli_query($mysqli, $sql)) { // Voert de actie uit
  echo "<br>"; // Wit ruimte
  echo "<br>"; // Wit ruimte
  echo "<br>"; // Wit ruimte
  echo "Succesvol aangepast!"; // Geeft aan dat het aangepast is
  echo "<br>"; // Wit ruimte
  echo "<a href='overzichtspagina.php'>Terug naar de vorige pagina.</a>"; // 
 een link waar de gebruiker terug kan gaan naar de vorige pagina
  } else {
  echo "Error: " . $sql . "<br>" . mysqli_error($mysqli); // geef fout 
melding aan de gebruiker als het mis gaat
  }
}
 ?>
</form>
<?php
$mysqli->close(); //Verbinding wordt verbroken.
?>
<div class="footer">
<?php include 'footer.php';?> <!-- De footer wordt opgehaald. -->
</div>
</body>
</html>
 
    