大家好我有这个问题。 我有一个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!";
}
}
为什么不工作?非常感谢! 我需要用户可以删除该行。
答案 0 :(得分:1)
您的HTML无效。您的表单前没有<td>
:
<td> ".$row['val1']."</td>
<----missing <td>
<form action='' method='POST'>
<input type='submit' name='delete' value='".$row['id']."' /></td>
因此,从技术角度来看,您的表单在表格内,在一行内,但不在单元格内,是自由浮动的。
另外,您的SQL容易受到injection attacks的攻击。</ p>
答案 1 :(得分:1)
最好将您的值放在隐藏字段中,而不是依赖于提交按钮的值:
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>
不合适。