Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中删除所选记录_Php_Mysql - Fatal编程技术网

在PHP中删除所选记录

在PHP中删除所选记录,php,mysql,Php,Mysql,我正在尝试删除所选记录 这是我的密码: echo '<td>'; echo $sqlUitlezenAccountsRank.'<br>'; echo '</td>'; echo '<td>'; echo '<form method="post"> <input name="AccountEdit" value ="Bewerken" type="submit"> </form>'.'<br>

我正在尝试删除所选记录

这是我的密码:

echo '<td>';
echo $sqlUitlezenAccountsRank.'<br>';
echo '</td>';
echo '<td>';
echo '<form method="post">
    <input name="AccountEdit" value ="Bewerken" type="submit">
</form>'.'<br>';
echo '</td>';
echo '<td>';
echo '<form method="post">
<input name="AccountDelete" value ="Verwijderen" type="submit">
</form>'.'<br>';
echo '</td>';
echo '</tr>';

if (isset($_POST['AccountDelete'])) {
    $DeleteAccount = "DELETE FROM StaffLeden WHERE GebruikersID=".$sqlUitlezenAccountsEach['GebruikersID'];

if ($conn->query($DeleteAccount) === TRUE) {
    echo "Account succesvol verwijderd";
} else {
    echo "Fout bij het verwijderen van het account: " . $conn->error;
}
echo';
echo$sqluitlezenacountsrank.“
”; 回声'; 回声'; 回声' “
”; 回声'; 回声'; 回声' “
”; 回声'; 回声'; 如果(isset($_POST['AccountDelete'])){ $deleteCount=“从statffleden删除,其中GebruikersID=“.sqluitlezenacountseach['GebruikersID'”; 如果($conn->query($deleteCount)==TRUE){ echo“帐户成功”vol verwijderd; }否则{ echo“Fout bij het verwijderen van het账户:”.$conn->错误; }

但是,如果我单击delete
Verwijderen
,它将删除mysql表中的所有数据,并多次显示“Account Successvol verwijderd”(成功删除该帐户)但我希望它只删除您单击delete
Verwijderen

的一个,您可以尝试将id添加到表单中,检查隐藏id,并在查询中添加帖子

                    echo '<td>';
                            echo $sqlUitlezenAccountsRank.'<br>';
                            echo '</td>';
                            echo '<td>';
                            echo '
                            <form method="post">
                                <input name="GebruikersID" value ="'.$sqlUitlezenAccountsEach['GebruikersID'].'" type="hidden">
                                <input name="AccountEdit" value ="Bewerken" type="submit">
                            </form>
                            '.'<br>';
                            echo '</td>';
                            echo '<td>';
                            echo '
                            <form method="post">
                                <input name="GebruikersID" value ="'.$sqlUitlezenAccountsEach['GebruikersID'].'" type="hidden">
                                <input name="AccountDelete" value ="Verwijderen" type="submit">
                            </form>
                            '.'<br>';
                            echo '</td>';
                            echo '</tr>';

                            if (isset($_POST['AccountDelete'])) {
                                $DeleteAccount = "DELETE FROM StaffLeden WHERE GebruikersID=".$_POST['GebruikersID'];

                                if ($conn->query($DeleteAccount) === TRUE) {
                                    echo "Account succesvol verwijderd";
                                } else {
                                    echo "Fout bij het verwijderen van het account: " . $conn->error;
                                }
                            }
                        }
echo';
echo$sqluitlezenacountsrank.“
”; 回声'; 回声'; 回声' “
”; 回声'; 回声'; 回声' “
”; 回声'; 回声'; 如果(isset($_POST['AccountDelete'])){ $deleteCount=“从statffleden删除,其中GebruikersID=“.$\u POST['GebruikersID'”; 如果($conn->query($deleteCount)==TRUE){ echo“帐户成功”vol verwijderd; }否则{ echo“Fout bij het verwijderen van het账户:”.$conn->错误; } } }
1)回传时,您不允许页面指定要删除的帐户。您需要在保存帐户ID的“delete”表单中有一个隐藏字段。然后您可以通过$\u POST数组访问该字段,并在查询中使用它(顺便说一句,应该立即对其进行参数化,以更好地保护您免受SQL注入攻击)


2) 很明显,这段代码在某种循环中。因此,每次循环迭代时,您的DELETE语句都将运行一次,这对于数据库中的每个帐户可能都是一次。呈现HTML(循环)的代码和处理回发的代码应该在脚本的不同部分中。它们旨在在单独的过程中执行(最初请求呈现HTML,然后是回发请求以处理表单提交),并且应该绝对而不是集中在一起。在这种情况下,它导致了完全可以避免的逻辑错误。在一些更面向MVC或API的网站设计中,这两位代码甚至可能完全在单独的脚本中。

了解防止SQL注入的准备语句打印出该语句,并查看生成的内容
if(isset($\u POST['AccountDelete'])
在导致删除所有内容的循环的所有迭代中都将是true或false。您需要一种方法来找到需要删除的帐户id。我该怎么做?PHP和SQL是不同的语言。MySQL甚至看不到您的PHP代码。实际的SQL代码算什么,在这种情况下存储在
$deleteCount变数。