介绍
在MySQL服务器表中,crimenews_url
是UNIQUE。我还使用INSERT INTO ... ON DUPLICATE KEY UPDATE来防止MySQL服务器的重复输入。
所以我想使用if-else语句来显示会话消息来检查条件。
笔记
会话消息显示在主页面上,但我认为if-else语句中存在一些错误。
Add.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) - > session message = The news has already existed.
else - > session message = The news has added.
您必须定义crimenews_url
才能在if else语句中使用它。
更新你的Add.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)");
$result = $conn->query("SELECT * FROM crimenews");
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$crimenews_url = $row["crimenews_url"];
}
}
//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");
}