嗨,伙计们,我有这个问题。我有一个 while 循环,向我显示表的值。现在我需要你可以删除其中一个,如果它是错误的。我只是无法运行这段代码,我不明白出了什么问题。这是我有问题的php。
while( $row = mysql_fetch_array( $res ))
{
echo "<tr>
<td> ".$row['id']."</td>
<td> ".$row['val1']."</td>
<form action='' method='POST'>
<input type='submit' name='delete' value='".$row['id']."' /></td>
</form>
</tr>";
}
if(isset($_POST['delete'])){
$user = $_POST['delete'];
$delet_query = mysql_query("DELETE FROM table_name WHERE id = '$user' ") or die(mysql_error());
if($delet_query) {
echo "Delete success!";
}
}
为什么不工作?非常感谢伙计!我需要用户可以删除该行。
您的 HTML 无效。您的表单之前没有<td>
:
<td> ".$row['val1']."</td>
<----missing <td>
<form action='' method='POST'>
<input type='submit' name='delete' value='".$row['id']."' /></td>
因此,从技术上讲,您的表单在表格内、一行内自由浮动,但不在单元格内。
另外,您的SQL容易受到注入攻击。
最好
将值放在隐藏字段中,而不是依赖提交按钮的值:
echo "<tr>
<td> ".$row['id']."</td>
<td> ".$row['val1']."</td>
<td>
<form action='' method='POST'>
<input type='hidden' name='delete' value='".$row['id']."' />
<input type='submit' value='".$row['id']."' />
</form>
</td>
</tr>";
另请注意,您丢失了打开<td>
,并且相应的关闭</td>
不合适。