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

chr*_*s m 1 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>";
Run Code Online (Sandbox Code Playgroud)

继续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>"; 
}
?>
Run Code Online (Sandbox Code Playgroud)

数据库是:shpdb表是:savannah

想法?

cle*_*tus 7

它拒绝坚持,因为你把它称之为一件事,并将其与另一件事情联系起来.更改:

"<input name=".$info['ID']." type=hidden>"
Run Code Online (Sandbox Code Playgroud)

"<input name=ID value=".$info['ID']." type=hidden>"
Run Code Online (Sandbox Code Playgroud)

因为在delete.php中你试图用以下方法访问它:

$id = $_POST['ID'];
Run Code Online (Sandbox Code Playgroud)

你应该引用属性值,即:

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;
Run Code Online (Sandbox Code Playgroud)

甚至:

?>
form action="delete.php" method="post">
<input type="hidden" name="ID" value="<?php echo $info['ID'] ?>">
<input type="submit" name="submit" value="Remove">
</form>
<?
Run Code Online (Sandbox Code Playgroud)