如何通过php从mysql中删除一行

时间:2012-08-14 04:17:48

标签: php mysql while-loop delete-row

刷新php并处理一个我遇到问题的简单程序。我似乎无法弄清楚如何删除mysql行。我将我的脚本链接到一个pastie文档中,这样你就可以看到我如何设置它了。

我不熟悉AJAX或Javascript ..所以我只是将删除按钮作为一个表单。如果我能让它发挥作用,我现在想保持这样。

PASTIE HERE

3 个答案:

答案 0 :(得分:2)

变化:

mysql_query("DELETE FROM name WHERE name=.'$del'.");

为:

mysql_query("DELETE FROM name WHERE name='".$_POST['$del']."'");

监守:
你应该摆脱它。在查询内部,dot用于字符串连接 2.您想使用$_POST['$del']的值 - 未设置参数$del

<强>更新

  1. <input type="hidden" name="del" />更改为:<input type="hidden" name="del" value="theNameYouWantToDelete"/>
  2. 您为所有表单元素(name =“del”)指定了相同的名称 - 不建议这样做!最好为每个对象设置不同的名称。
  3. 请不要使用mysql_* - 它已被弃用且易受sql注入攻击,请改用PDO或MySQLi。

答案 1 :(得分:0)

您没有正确连接$del变量。你可以简单地使用:

mysql_query("DELETE FROM name WHERE name='$del'");

此外,您需要在$del查询之前设置DELETE。在您尝试使用该变量之前尚未声明该变量,因此它将为null

答案 2 :(得分:0)

在第30行,您有两个名为del的输入,第二个不包含要删除的名称

echo '<form id="del" method="post"><input type="submit" name="del" value="X" /><input type="hidden" name="del" /></form>';

需要更改为 -

echo '<form id="del" method="post"><input type="submit" name="del_submit" value="X" /><input type="hidden" name="del" value="'.$del.'" /></form>';

然后将第12-13行更改为

if (isset($_POST['del_submit'])) {
mysql_query("DELETE FROM name WHERE name='".$_POST['del']."'");

请注意,mysql_函数已弃用,并且您需要使用sql注入。