<form action="<?php echo $_SERVER['PHP_SELF'];?>" style="display:inline" method="post">
<input type="submit" name="del" value="Delete">
<br>
<?php
$con=mysql_connect("localhost","root") OR DIE ("cant connect to server".mysql_error());
mysql_select_db("bedanshare") OR DIE ("cannot select db".mysql_error());
$stud=mysql_query("SELECT * FROM studentreg");
$count=mysql_num_rows($stud);
echo "<table border='1'>";
echo "<th><center />#</th>";
echo "<th><center />Student Number</th>";
echo "<th><center />First Name</th>";
echo "<th><center />Last Name</th>";
echo "<th><center />E-mail</th>";
echo "<th><center />Username</th>";
echo "<th><center />Password</th>";
while($row=mysql_fetch_array($stud))
{
echo "<tr>";?>
<td><input name='checkbox[]' type='checkbox' id='checkbox[]' value="<?php echo $row['ID']; ?>">
<?php
echo "<td><center />".$row['ID']."</td>";
echo "<td><center />".$row['Fname']."</td>";
echo "<td><center />".$row['Lname']."</td>";
echo "<td><center />".$row['EmailAddress']."</td>";
echo "<td><center />".$row['Username']."</td>";
echo "<td><center />".$row['Password']."</td>";
echo "</tr>";
}
echo "</table>";
if($del)
{
for($i=0;$i<$count;$i++)
{
$id=$checkbox[$i];
$dels=mysql_query("DELETE FROM studentreg WHERE ID='$id'");
}
}
?>
</form>
为什么代码不会删除行? :(请帮助。没有数据似乎受到影响.ID是我的主键,但是当我点击删除时,没有任何反应。我不认为我的查询是错误的。顺便说一下我使用复选框删除多行。
答案 0 :(得分:2)
有一个条件:
if($del)
只有这样才会进入循环并开始删除行。
问题是代码中没有定义变量$del
。
修改强> 将您的条件更改为:
if(array_key_exists('del',$_POST))
并改变下一行,来自:
$id=$checkbox[$i];
为:
$id=$_POST['checkbox'][$i];
答案 1 :(得分:0)
在您的代码中有两个错误。 1. $ del是未定义的变量。 2. $ checkbox []是未定义的变量。
您必须修改上面的代码,如下所示:
if(isset($_POST['delete'])) // Not if($del)
$id = $_POST['checkbox'][$i]; // Not $id=$checkbox[$i];