PHP Mysql 删除查询无法正常工作

2023-12-06

我正在从 MYSQL 数据库中提取产品列表,并对每个产品使用删除按钮,以防操作员想要删除该产品。

问题是,每次我点击列表中任何产品上的删除按钮时,第一个元素都会被删除。

我下面的代码有什么问题?

Products page:

<?php
$link=mysqli_connect("localhost","root","","smartcart");
$prod="select * from products";
$rw=mysqli_query($link,$prod) or die(mysqli_errno()."in query $prod");
$count=1;

while($row=mysqli_fetch_assoc($rw))
{
    echo "<tr>";
    echo "<td>".$count."</td>";
    echo "<td>".$row['prod_id']."</td>";
    echo "<td>".$row['prod_name']."</td>";
    echo "<td>".$row['prod_price']."</td>";
    echo "<td><form action='delete_prod.php' id='delete' method='get'>";
    echo "<input type='hidden' name='prod_id' value='".$row['prod_id']."' />";
    echo "<button type='submit' form = 'delete' class='btn btn-default' name='delete'>Delete</button>";
    echo "</form></td>";
    $count=$count+1;                        
}

mysqli_free_result($rw);
?>

delete_prod.php:

<?php
if(isset($_GET['delete']))
{
    include "connection.php";
    $prod_id=$_REQUEST['prod_id'];
        $del="delete from products where prod_id=$prod_id";
    if (mysqli_query($link,$del))
    {
        echo "Successfully deleted";
        unset($_POST['delete']);
    }
    else
    {
        echo "Delete operation Failed";
    }
    header('location:show_db.php');
}
?>

我认为我严重遗漏了一些简单的观点,但我无法明白它是什么。


很可能是因为您设置了id="delete"。通常 id 属性值不会重复。

echo "<td><form action='delete_prod.php' id='delete' method='get'>";
echo "<button type='submit' form = 'delete' class='btn btn-default' name='delete'>Delete</button>";

提交按钮获取第一个 ID,从而获取第一个隐藏输入。

或者,您可以像这样设计按钮并用作标记:

无需打印每份表格!只需将其与表格包裹起来即可:

echo "<form action='delete_prod.php' id='delete' method='get'>";

echo '<table>';
while($row = mysqli_fetch_assoc($result)) {
    $prod_id = $row['prod_id'];
    echo "<tr>";
        echo "<td>".$count."</td>";
        echo "<td>".$row['prod_id']."</td>";
        echo "<td>".$row['prod_name']."</td>";
        echo "<td>".$row['prod_price']."</td>";
        echo "<td>";
        // each id is assigned to each button, so that when its submitted you get the designated id, the one that you clicked
        echo "<button type='submit' value='$prod_id' class='btn btn-default' name='delete'>Delete</button>";
        echo "</td>";
    echo '</tr>';
}

echo '</table>';
echo '</form>';

然后在PHP中处理:

if(isset($_GET['delete'])) // as usual
{
    include "connection.php";
    $prod_id = $_GET['delete']; // get the id
    // USE PREPARED STATEMENTS!!!
    $del="DELETE FROM products WHERE prod_id = ?";
    $delete = $link->prepare($del);
    $delete->bind_param('i', $prod_id);
    $delete->execute();
    // don't echo anything else, because you're going to use header
    if($delete->affected_rows > 0) {
        header('location:show_db.php');
    } else {
        echo 'Sorry delete did not push thru!';
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP Mysql 删除查询无法正常工作 的相关文章

  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array

随机推荐

  • 在 Pyramid 中,如何从视图返回原始 HTML?

    我对 Pyramid 真的很陌生 而且对一般的 Web 框架也很陌生 我正在尝试进入可以从视图返回原始 HTML 的阶段 以便可以标记从 mongoDB 存储返回的数据 My init py在我的金字塔项目中是标准的 def main gl
  • dplyr:如何在函数内使用 group_by ?

    我想使用使用dplyr group by函数在另一个函数中 但我不知道如何将参数传递给该函数 有人可以提供一个可行的例子吗 library dplyr data iris iris group by Species summarise n
  • 多线程嵌入式软件中的原子操作

    我一直在用 C 语言开发基于 RTOS 的嵌入式软件 并且遇到了有关从多个线程访问共享资源的问题 我有两个问题 第一个是在状态机中设置和获取状态变量的值 下面是 StateMachine object 的头文件 typedef enum S
  • 正则表达式 $1 进入变量会干扰另一个变量

    我已经在我的代码的一部分上苦苦挣扎了一段时间 但无法弄清楚 似乎与 1 的处理方式有关 但我找不到任何相关内容 正则表达式找到 16640021 并将其分配给数组中的一个位置 my one my two my articleregex qr
  • golang中有没有像OpenMP那样简单的“parallel for”?

    我正在尝试通过并行处理来优化谜题 以获得更好的性能 理想情况下 在带有 OpenMP 的 C99 中 我应该能够在 pragma omp parallel for之前for循环问题 然后应该由系统在 CPU 之间分配负载 Go 的官方文档位
  • 使用无状态(=无会话)身份验证时需要 CSRF 令牌吗?

    当应用程序依赖无状态身份验证 使用 HMAC 之类的东西 时 是否有必要使用 CSRF 保护 Example 我们有一个单页应用程序 否则我们必须在每个链接上附加令牌 a href token xyz a 用户使用以下方式验证自己的身份PO
  • 输出提示中出现 [1] 的名称和原因是什么?

    叫什么名字 1 below 其意义何在 难道永远只是 1 如果不是 那么在什么条件下是别的东西 请举例 gt bb lt c 5 6 7 gt bb 1 5 6 7 它显示了变量的计数 在你的情况下 它显示 bb lt c 5 6 7 gt
  • C++ 中 [] 的奇怪用法。怎么了? [复制]

    这个问题在这里已经有答案了 首先 这不是关于数组或运算符 重载的虚拟问题 我试图编译 Qt Creator 但在此方法中收到错误 static QList
  • 如何让触摸事件将焦点保持在它启动的小部件上?

    假设我有一个 ListView 其中一行是我的自定义视图 用户在自定义视图内部进行触摸 gt 自定义视图将处理此触摸事件 用户在自定义视图的区域内继续此触摸序列 gt 自定义视图也可以处理这些事件 问题 当用户将手指拖动到自定义 View
  • 错误 OAuthException“消息”:“邮箱需要 read_mailbox 扩展权限。”

    我在尝试访问 Facebook Graph api 邮箱时收到此错误 https graph facebook com me inbox access token
  • 防止加载多边形外部的图块

    有没有办法防止加载多边形之外的图块 我发现的最接近的例子在这里 http jsfiddle net LsvDk 23 var polygon L multiPolygon 51 509 0 08 51 503 0 08 51 503 0 0
  • 无法点击java selenium中的按钮?

    HTML 代码
  • 返回上一个 TabActivity

    我该如何解释我的问题 我有一个使用选项卡的应用程序 通过意图 而不是视图 我已经在每个视图中实现了导航 没有遇到任何问题 但我需要从全屏和横向模式下的 Activity 之一内的 ListView 启动视频播放器 因此没有选项卡 但是 当我
  • 如何阻止 Apache httpd 拒绝 HTTP PATCH 请求?

    我正在致力于实施JSON 补丁在 Bitnami Tomcat Stack 上使用 Java servlet 的规范 在 servlet 端 我通过重写 HttpServlet service 方法来处理 HTTP PATCH 方法 如下所
  • 调试设备上的 iOS/AIR 内容

    我在 FlashDevelop v 4 0 中创建了一些 Flash 内容 并将其转换为 ipa 并放在设备上 我想在设备上运行时调试内容 因为它给了我一些意想不到的行为 是否可以通过 FlashDevelop 远程调试在物理设备上调试 A
  • URLConnection 和 Socket 哪个更快

    为了从远程 url 获取数据 哪种连接类型可以快速工作 URLConnection 或 Socket 两者都有不同的用途 具体取决于您的需求 一个socket可以实现almost一种双工类型的功能 而 url 连接可以连接到给定的 URI
  • gmail 和 parse_resource gems 之间的 Ruby 自动加载冲突

    Earlier 我询问 gmail gem 中的自动加载无法找到它想要加载的文件 在构建一个最小的脚本时 我发现当我没有包含 parse resource gem 时 gmail gem 加载了它的文件 The Gmail 宝石让您可以从
  • golang http超时和goroutines累积

    我使用goroutines实现http Get超时 然后我发现goroutines的数量一直在稳步上升 当达到1000个左右时 程序就会退出 Code package main import errors io ioutil log net
  • Android 2.2 上的 GCM SERVICE_NOT_AVAILABLE

    我在 Android 2 2 设备上调用 GoogleCloudMessaging register 时收到错误 SERVICE NOT AVAILABLE 我正在编写一个使用新的 Google Play 服务的 GoogleCloudMe
  • PHP Mysql 删除查询无法正常工作

    我正在从 MYSQL 数据库中提取产品列表 并对每个产品使用删除按钮 以防操作员想要删除该产品 问题是 每次我点击列表中任何产品上的删除按钮时 第一个元素都会被删除 我下面的代码有什么问题 Products page