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

时间:2019-04-10 04:00:27

标签: php sql

简介

在MySQL服务器表中,crimenews_url是唯一的。我还使用了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 ?>

预期结果

如果(输入URL = MYSQL服务器中的URL)->会话消息= The news has already existed. 其他->会话消息= The news has added.

1 个答案:

答案 0 :(得分:1)

您必须定义crimenews_url才能在 if 语句中使用它。
更新您的 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");
     }
相关问题