从数据库中删除PHP表单的问题

时间:2015-10-09 17:36:45

标签: php mysql

我试图在PHP中创建一个表单,该表单将根据该行的ID删除MySQL数据库中的行。由于某种原因,表单似乎没有传递ID,因此它不知道要删除哪一行。这是我的表格:

<?php
//connect to the database//
include 'mysqlconnect.php';
?>

<?php $result = mysql_query("SELECT * FROM images"); ?>

<?php    
echo "<table border='1'>
<tr>
<th>Image ID</th>
<th>Image</th>
<th>Description</th>
<th>&nbsp;</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td><img src='" . $row['image'] . "' width='300px' /></td>";
echo "<td>" . $row['description'] . "</td>";
echo "<td>
<form method='post' action='deleted.php'>
<input type='hidden' value='".$row['id']."' /> 
<input name='delete' type='submit' id='delete' value='Delete'>
</form>
</td>";
echo "</tr>";
}
echo "</table>"; // Close table
?>

表单数据包含,包括id。表单转到deleted.php,这是该页面上的代码:

<?php
//connect to the database//
include 'mysqlconnect.php';
?>
<?php
$id = $_POST['id']; 
$query = "DELETE FROM images WHERE id = '".$id."'"; 

if(mysql_query($query)){ 
echo "deleted image ". $id;
//test to see if id is coming
echo $id;
} else{ 
echo "fail";
}
?>

这会返回成功,但图片不会被删除且ID不会进入。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您尚未命名包含id的输入字段。

此:

<input type='hidden' value='".$row['id']."' />

需要成为这个:

<input type='hidden' name='id' value='".$row['id']."' /> 

答案 1 :(得分:0)

您没有通过表单向PHP发送id。只需将隐藏输入字段的name属性设置为id,它就会发送给PHP。

 <form method='post' action='deleted.php'>
      <input type='hidden' name='id' value='".$row['id']."' /> 
      <input name='delete' type='submit' id='delete' value='Delete'>
</form>

不要使用在较高版本的PHP中不推荐使用的mysql_功能。使用mysqli_PDO代替mysql_

快乐的编码。