【问题标题】:mysqli query deletemysqli 查询删除
【发布时间】:2013-03-16 15:24:52
【问题描述】:

我将数据库表中的所有数据显示为页面上的 HTML 表。 当管理员选择一行时,它会向 HTML 表中的父行添加一个“删除”类。

然后我想从 mysqli 数据库中删除它。我会将行字段设置为变量并删除数据库中与其匹配的行吗?我不知道该怎么做,有人可以指出我正确的方向吗?

HTML

<table>
  <tr class="remove">
    <td>field1</td>
    <td>field2</td>
    <td>field3</td>
  </tr>
  <tr>
    <td>another field</td>
    <td>another field</td>
    <td>another field</td>
  </tr>
</table>

Mysqli(相关示例)

  $mysqli->query("DELETE FROM $table WHERE Date="??" LIMIT 1");

【问题讨论】:

  • 我真的不确定你想说什么,但我认为你需要在显示表格时为每一行设置一些唯一的 id,然后你可以删除那个特定的选定行身份证
  • 是的,这听起来很对。但我不确定如何设置 ID 或如何使用 HTMl 选择特定 ID。
  • 你的表中必须有一个主键列。当您获取记录时,使主键中的值成为您用于删除或其他内容的选择框的名称......然后您始终可以“点击”获取该值并在数据库中触发删除查询。
  • 嗯,好的。是的,我有一列带有日期的列,它是主键列。但是有些行两者的日期相同。当我尝试选择一行时,这不会导致问题,因为主列中的条目不是唯一的吗?
  • 你的意思是日期是你的主列,你没有唯一的条目......这是不可能的......尝试将主键作为一些自动增量列

标签: php database mysqli


【解决方案1】:

如果您使用的是JavaScript,我假设您是这样的,因为您在选择某行时将一个类添加到该行中,您可以执行以下操作:

1.在每一行中包含一个隐藏的禁用输入:

<tr class="remove">
    <td>field1</td>
    <td>field2</td>
    <td>

        field3

        <input type="hidden" disabled name="delete[]" value="<?php echo $id; ?>">

    </td>
</tr>

2。选择移除时启用隐藏输入:

我不会猜测您是如何将 remove 类添加到行中的,但是这样做时,请删除其中包含的隐藏 delete[] 输入的 disabled 属性。

3.发布表格:

发布后,您可以运行查询以删除 $_POST['delete'] 数组中具有 ID 的所有行。

如果您使用准备好的语句,您可以使用以下查询,其中 ?implode(',', $_POST['delete'])

"DELETE FROM " . $table . " WHERE FIND_IN_SET(id, ?) != 0"

为了简单起见,我在这里假设您有一个唯一的 id 字段(不包含 ,s 作为其值的一部分)。显然更改为与您的数据库相关的任何内容。

【讨论】:

  • 谢谢。我最终使用了与此类似的解决方案。我在每一行都有一个隐藏的输入,其中的值是唯一 ID(使用自动增量在表中设置)。然后选择一行进行删除时,我使用jQuery选择该行上的输入。最后我做了 "WHERE ID="$rowID" 找到正确的行并将其删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多