DELETE FROM表WHERE ID ='$ id' - 变量拒绝坚持

时间:2009-10-14 23:50:53

标签: php mysql

尝试在这里执行一项非常简单的任务。

我有<ol>在一些方便的<li>中包含4行数据。我想添加一个删除按钮来删除表中的行。 delete.php中的脚本似乎已经完成,但是当我返回并检查dashboard.php和PHPMyAdmin列表时,该行永远不会被删除。

这是删除按钮的代码(在PHP中):

Print "<form action=delete.php method=POST><input name=".$info['ID']." type=hidden><input type=submit name=submit value=Remove></form>";

继续delete.php:

<? 
//initilize PHP

if($_POST['submit']) //If submit is hit
{
   //then connect as user
   //change user and password to your mySQL name and password
   mysql_connect("mysql.***.com","***","***") or die(mysql_error()); 

   //select which database you want to edit
   mysql_select_db("shpdb") or die(mysql_error()); 

   //convert all the posts to variables:
   $id = $_POST['ID'];


   $result=mysql_query("DELETE FROM savannah WHERE ID='$id'") or die(mysql_error()); 

    //confirm
   echo "Patient removed. <a href=dashboard.php>Return to Dashboard</a>"; 
}
?>

数据库是:shpdb 表是:savannah

想法?

3 个答案:

答案 0 :(得分:7)

它拒绝坚持,因为你把它称为一件事,而另一件事就是这样。变化:

"<input name=".$info['ID']." type=hidden>"

"<input name=ID value=".$info['ID']." type=hidden>"

因为在delete.php中你试图通过以下方式访问它:

$id = $_POST['ID'];

你应该引用属性值,即:

print <<<END
form action="delete.php" method="post">
<input type="hidden" name="ID" value="$info[ID]">
<input type="submit" name="submit" value="Remove">
</form>
END;

甚至:

?>
form action="delete.php" method="post">
<input type="hidden" name="ID" value="<?php echo $info['ID'] ?>">
<input type="submit" name="submit" value="Remove">
</form>
<?

答案 1 :(得分:3)

为了热爱网络,请不要自己构建SQL查询。使用PDO

答案 2 :(得分:1)

我想做的另一点。我95%肯定你不能给输入一个数字名称/ id属性。它必须像“id_1”而不是“1”。

使用php也可以做数组。

所以你可以这样做

<input name="delete[2]">

然后在你的php

if(isset($_POST['delete']))
  foreach($_POST['delete'] as $key=>$val)
    if($_POST['delete'][$key])  delete from table where id = $val