为什么$_GET没有';如果条件允许,不要在里面工作


why $_GET doesn't work inside if condition?

my if条件不适用于$_GET['delete']条件。如何解决这个问题?我想通过读取url从表中删除一行。如果url包含工作delete this,那么mysql行应该被删除。我在这里做错了什么?

                <?php
                      $query = "SELECT * FROM category";
                      $select_category_id_and_title = mysqli_query($connection, $query);
                      while($row = mysqli_fetch_assoc($select_category_id_and_title) )
                      {
                          $cat_id = $row['id'];
                          $cat_title = $row['cat_title'];
                          echo "<tr>";
                          echo "<td>$cat_id</td>";
                          echo "<td>$cat_title</td>";
                          echo "<td><a href='admin_category_dashboard_new.php?delete = {$cat_id}'>DELETE</a></td>";
                          echo "<td><a href='admin_category_dashboard_new.php?edit = {$cat_title}'>EDIT</a></td>";
                          echo "</tr>";
                          //echo $_GET['delete'];
                      }
                 ?>             
                 <?php 
                    if(isset($_GET['delete'])) // doesn't work
                    {
                        $delete_cat_id = $_GET['delete'];
                        echo '<h1>' . $delete_cat_id . '</h1>';
                        $query = "DELETE FROM category WHERE id = $delete_cat_id ";
                        $Cat_id_delete_query = mysqli_query($connection, $query);
                        if(!$Cat_id_delete_query)
                        {
                            die("error" . mysqli_error($connection));
                        }
                        header("Location: admin_category_dashboard_new.php ");
                    }
                ?>  

您在URL中的"delete"后面包含了一个空格。

因此,您需要查找的$_GET索引是'delete_'

在文件中尝试以下操作

var_dump($_GET);

然后转到你的文件.php?delete=任何

然后用你的file.php重试?delete=任何

查看的差异

如果条件根本没有激发,那么可能是因为:

  1. 您在URL中拼错了delete
  2. delete的值为null

即使值为null,isset()函数也会返回false;而不仅仅是在密钥不存在的情况下。