从 table 中删除不会删除行

Deleting from a table does not remove row

免责声明:我知道 SQL 注入,我先完成功能。

我的删除按钮似乎没有删除我在 SQL table

中的行

产品一time.php

这是我的 foreach 的输出,删除按钮下面的数字是组 ID,只是为了表明它们是唯一的。

这是删除按钮的代码,它会在点击时重定向到 clinics_buttons.vc.php

  <a href="clinics_buttons.vc.php<?php echo '?delete-coupongroup='.$rowCouponGroup['groupid']; ?>" onclick="return confirm('Delete this group?');">
    <button class="btn btn-danger btn-sm full_width" data-toggle="modal">
      <i class="fa fa-edit"></i>DELETE
    </button>
  </a>
  <?php echo $rowCouponGroup['groupid']; ?>

clinics_buttons.vc.php

<?php
session_start();

$routePath = "../";
require_once($routePath . "_config/db.php");
  $dbConfig = new config_db();
  $db = $dbConfig->init();

$delete_coupongroup = $_GET['delete-coupongroup'];

if (isset($_GET['delete-coupongroup'])) {
  $stmt = $db->prepare("DELETE FROM `product_onetime` WHERE groupid = $delete_coupongroup");
  $stmt->execute();
  header('Location: ' . $_SERVER['HTTP_REFERER']);
  }

?>

这是product_onetimetable

我看到的是我的代码看起来像是连接在一起的,但是删除按钮不起作用。我尝试在 phpmyadmin 中手动执行 SQL,例如:

DELETE FROM `product_onetime` WHERE groupid = 5

手动操作有效,但 php/sql 无效。想要一些意见。

我的猜测是文件clinics_buttons.vc.php根本没有执行,因为我们在问题中看到的代码在<form>中。在这种情况下,按钮行为会覆盖 link 行为,浏览器将提交表单而不是遵循 link.

您应该能够在浏览器的开发工具的网络选项卡中看到它。

作为快速修复,将按钮从提交按钮更改为推送按钮:

<button type="button" class="btn btn-danger btn-sm full_width" data-toggle="modal">
  <i class="fa fa-edit"></i>DELETE
</button>

更好的解决方案是根本不使用按钮。只需使用 CSS 样式使 link 看起来像一个按钮。或者,从外部表单标记外部删除代码,并使用 clinics_buttons.vc.php 作为表单操作为其赋予自己的表单。