我使用以下代码为所选复选框选择多个值以将其从数据库表中删除但是当我是print_r时,它只显示其未显示id值的键。
我已使用此代码获取数组中的值: -
<?php
echo "Hiiiiiiiiii";
include("conn.php");
$sql="select * from test ";
$res=mysql_query($sql) or die(mysql_error());
?>
<form name="form1" method="POST" action="">
<table width="578" border="1" align="center" id="menu">
<tr>
<th></th>
<th>id</th>
<th>Name</th>
<th>email</th>
<th>phno</th>
</tr>
<?php
while($row=mysql_fetch_array($res))
{
?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['emailid'];?></td>
<td><?php echo $row['phno'];?></td>
<?php
echo"<td><a href='update.php?id=".$row['id']."'>Update</a></td>";
?>
<?php
}
?>
<tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>
<?php
// Check if delete button active, start this
$count = mysql_num_rows($res);
echo "$count";
if(isset($_POST['delete']))
{
if(count($_POST['checkbox']) !=0)
{
$array = array("checkbox" => $_POST['checkbox']);
print_r($array);
$ids = implode(',', $array);
echo "$ids";
$result = mysql_query("DELETE FROM test WHERE id IN ($ids)") or die(mysql_error());
}
}
// if successful redirect to delete_multiple.php
if($result)
{
echo "<meta http-equiv=\"refresh\" content=\"0;URL=teach_delinquent.php\">";
echo "SUCCESS";
}
?>
答案 0 :(得分:0)
$_POST['checkbox']
数组只包含复选框:
$ids = array();
foreach($_POST['checkbox'] as $val){
$ids[] = (int) $val;
}
$ids = implode(',', $ids);
出于安全考虑,我已完成foreach
以制作所有ID INT
。
答案 1 :(得分:0)
快速解决您的问题如下
替换下面的行
$array = array("checkbox" => $_POST['checkbox']);
与
$array = $_POST['checkbox'];
或
$array = array_map('intval',$_POST['checkbox']); // if all values are integer ---for security
因为$ _POST ['checkbox']已经是一个数组
希望这能解决你的问题