The code below is how I am removing data from my database. The user selects titles he wants to remove and then the query should delete those rows. Unfortunately, that isn't working.
I have made sure the DELETE query works by using it in PhpMyAdmin and MySQL Workbench, but for some reason the PHP code I'm coding is not allowing the deletes to work.
<?php
session_start();
require ("../login.php");
if (!isset($_SESSION['user']))
header('Location: ../index.php');
include ("header.php");
include ("subnav.php");
?>
<h2>Current Subscriptions</h2>
<?php
$user_id = $_SESSION['user'];
if (isset($_POST['submit'])) {
foreach($_POST["titles"] as $title) {
$stmt = $db->prepare("DELETE FROM subscriptions WHERE user=:user AND title=:title)");
$stmt->bindValue(':user', $user_id, PDO::PARAM_INT);
$stmt->bindValue(':title', $title, PDO::PARAM_INT);
$stmt->execute();
}
echo '<p>Thank you! Your changes have been made!</p>';
}
else {
$stmt = $db->prepare
("SELECT t.id, t.publisher, t.title
FROM titles t
JOIN subscriptions s
ON t.id = s.title
WHERE s.user=:user
ORDER BY t.id");
$stmt->bindValue(':user', $user_id, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll();
$num_rows = count($rows);
if ($num_rows == 0)
echo 'You are not currently subscribed to any titles.';
else {
?>
<form action="" method="post">
<?php
foreach($rows as $row)
echo '<input type="checkbox" name="titles[]" value="' . $row['id'] . '">' . $row['publisher'] . ' - ' . $row['title'] . '<br>';
?>
<input type="submit" value="Update" name ="submit" id="submit">
</form>
<?php
}
}
?>
<?php
include ("footer.php");
?>