我试图在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> </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不会进入。有任何想法吗?
答案 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_
。
快乐的编码。