介绍
在 MySQL 服务器的表中,crimenews_url是 UNIQUE。我还使用 INSERT INTO ... ON DUPLICATE KEY UPDATE 来防止 MySQL 服务器的重复输入。
所以我想使用 if-else 语句来显示会话消息来检查条件。
笔记
会话消息显示在主页上,但我认为 if-else 语句中有一些错误。
添加.php
if(isset($_POST['Save']))
{
$category = mysqli_real_escape_string($conn,$_POST['category']);
$url = mysqli_real_escape_string($conn,$_POST['url']);
$datetime = mysqli_real_escape_string($conn,$_POST['datetime']);
$lat = mysqli_real_escape_string($conn,$_POST['lat']);
$lng = mysqli_real_escape_string($conn,$_POST['lng']);
$conn->query("INSERT INTO crimenews (crimenews_cat, crimenews_url, crimenews_datetime, crimenews_locationLat, crimenews_locationLong) VALUES ('$category', '$url', '$datetime', '$lat', '$lng') ON DUPLICATE KEY UPDATE crimenews_url = VALUES(crimenews_url)");
$conn->query("SELECT * FROM crimenews");
//If there is no duplicated URL inserted into MySQL server
if(crimenews_url == $url)
{
$_SESSION['message'] = "The news has already existed.";
$_SESSION['msg_type'] = "danger";
}
//If there is duplicated URL insert into MySQL server
else
{
$_SESSION['message'] = "The news has added.";
$_SESSION['msg_type'] = "success";
}
header("location: front.php");
}
front.php(会话显示部分 - 显示消息)
<?php if (isset($_SESSION['message'])): ?>
<div class="alert alert-<?=$_SESSION['msg_type']?> alert-dismissible fade show" role="alert">
<button type="button" class="close" data-dismiss="alert"><span style='font-size:25px;'>×</span></button>
<?php
echo $_SESSION['message'];
unset($_SESSION['message']);
?>
</div>
<?php endif ?>
预期结果
if(输入 URL = MYSQL 服务器中的 URL)-> 会话消息 = The news has already existed.
else -> 会话消息 =The news has added.