if-else条件下的会话消息问题

问题描述 投票:2回答:1

介绍

在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;'>&#215;</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.

php sql
1个回答
1
投票

您必须定义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");
     }
© www.soinside.com 2019 - 2024. All rights reserved.