このスクリプトを使用して、プロファイルからのリンクがクリックされたときに、ユーザーを別のユーザーのお気に入りに挿入しています。
現時点では、ユーザーはユーザーをお気に入りに追加できますが、もう一度ボタンをクリックしてお気に入りから削除できるようにしたいと考えています。
したがって、エントリが存在する場合は削除機能を実装する必要があり、それが私が行き詰まっているところです。誰かが私が間違っているところを教えてください。
これが私のオリジナルのユーザーをお気に入りに追加するコードです。
<?php
require_once('includes/session.php');
require_once('includes/functions.php');
require('includes/_config/connection.php');
session_start();
confirm_logged_in();
if (isset ($_GET['to'])) {
$user_to_id = $_GET['to'];
}
if (!isset($_GET['to']))
exit('No user specified.');
$user_id = $_GET['to'];
$result = mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")")
or die(mysql_error());
header($_SERVER['HTTP_REFERER']);
?>
そして、エントリが既に存在する場合に削除するために追加しようとしたものは次のとおりです:(これにより、構文エラーが発生し、機能しません)
<?php
require_once('includes/session.php');
require_once('includes/functions.php');
require('includes/_config/connection.php');
session_start();
confirm_logged_in();
if (isset ($_GET['to'])) {
$user_to_id = $_GET['to'];
}
if (!isset($_GET['to']))
exit('No user specified.');
$user_id = $_GET['to'];
$result = mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")")
or die(mysql_error());
if ($insert() === true) {
$delete = (function () use ($connection, $user_to_id) {
$sql = "DELETE FROM ptb_favorites WHERE user_id = ? AND favorite_id = ?";
$statement = $connection->prepare($sql);
$result = $statement->execute(array(
$_SESSION['user_id'],
$user_to_id
));
return $result;
});
$delete();
}
header($_SERVER['HTTP_REFERER']);
?>