【问题标题】:Delete From Table - Via Form从表中删除 - 通过表单
【发布时间】:2014-08-23 19:38:37
【问题描述】:

我有一个显示所有表格条目的 HTML 表格。表格中的每个 SQL 条目旁边还有一个删除按钮。

我希望能够删除用户选择的条目。我已将表单提交到 PHP_Self,并且我从 while 循环中传入索引 $i 作为参考:

$i = 0;

while($row = mysqli_fetch_array($result)){

    ?>

    <tr>
        <td>
            <? echo $row['uniqueIdentifier']; ?>
        </td>

        <td>
            <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
                <input type='hidden' name='remove_entrie_ID' value='<? echo $i; ?>' />
                <input type='submit' value='Delete' name='remove_entrie'>
            </form>
        </td>

    </tr>

    <?

    $i++;

}

所以这是传递给自己的,我现在想做一个DELETE WHERE 'INDEX OF TABLE' == $i,输入东西?我什至不知道这是否可能。

if(isset($_POST['remove_entrie'])){

    $index = $_POST['remove_entrie_ID']
    echo "Index: " . $index;

    //mysqli_query($con, "DELETE FROM Users WHERE INDEX = '$index'");
}

我基本上是使用 $i 来挑选表加载方式的索引,然后使用它来挑选我要删除的行。但我有一种感觉,这做不到?

我基本上想删除用户从表中选择的行。

【问题讨论】:

  • 旁注:INDEX 是保留字 dev.mysql.com/doc/refman/5.5/en/reserved-words.html 要么在它周围使用反引号,要么给它另一个名称。还要确保打开短标签。如果没有,如果您已经遇到问题,请将 &lt;? 更改为 &lt;?php
  • 你是弗雷德,我正要发布那个
  • 谢谢你,谢谢你。 @Dagon 那不是我最好的 :::ELVIS::: 模仿,但它很接近。我还能得到我的 sea-gahr 吗?
  • 好的,那么删除用户选择的行的最佳方法是什么?我怎样才能引用它?我不能使用 'uniqueIdentifier',因为具有讽刺意味的是,它们是行内的一些重复项 - 我不想删除错误的
  • 您需要一些方法来唯一地标识行。为什么表中没有自动递增的主键?

标签: php sql indexing sql-delete


【解决方案1】:

你不需要 $i 变量。只需在您的列表中进行简单的修改:

while($row = mysqli_fetch_array($result)){
?>
<tr>
    <td>
        <? echo $row['uniqueIdentifier']; ?>
    </td>

    <td>
        <form action="" method="post">
            <input type="hidden" name="remove_entrie_ID" value="<? echo $row['uniqueIdentifier']; ?>" />
            <input type="submit" value="Delete" name="remove_entrie">
        </form>
    </td>

</tr>

<?

}

最好在你的 post 变量中转义特殊字符等以避免 sql 注入。

【讨论】:

  • 正如我上面提到的:我不能使用 'uniqueIdentifier',因为讽刺的是它不是唯一的,它们是表中的一些重复项 - 我不想删除错误的
  • @OliverJones 当然,您必须有一列没有重复条目?
  • 抱歉没有注意到。您可以尝试以类似的方式将您的 id 与其他列一起使用。只需从表中添加一些其他字段或字段作为删除条件。
  • 每一行都有一个时间戳和一个 this uniqueId。我可以添加任何我想添加的内容 - 我继续添加另一个名为 indexId 的内容,然后让 PHP 计算有多少行,然后增加该值。
  • 虽然..我不知道这是否会运作良好......两个用途会发生什么情况同时发布到 PHP,并设法获得相同的计数值?那我就完蛋了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多