Php 使用无法正常工作的复选框代码删除
代码工作不正常总是显示失败消息Php 使用无法正常工作的复选框代码删除,php,html,Php,Html,代码工作不正常总是显示失败消息 function delete(){ $con = mysqli_connect("localhost","root","","rishita_db"); $sql="select * from 14_patientdetails"; $result=mysqli_query($con,$sql); ?> <form method="post" action=""> <center>
function delete(){
$con = mysqli_connect("localhost","root","","rishita_db");
$sql="select * from 14_patientdetails";
$result=mysqli_query($con,$sql);
?>
<form method="post" action="">
<center>
<h1><u>Patient Details</u></h1>
<table border="1" style="font-family:Georgia;color:#800000;font-style:bold;">
<tr style="font-family:Georgia;color:green;font-style:bold;">
<th>#</th>
<th>Patient ID</th>
<th>Patient Name</th>
<th>DOB</th>
<th>Gender</th>
<th>Address</th>
<th>Phone No.</th>
<th>Medicare</th>
<th>Doctor Associated</th>
</tr>
<form method="post" action="">
<?php
while($row=mysqli_fetch_array($result))
{
$r=$row['patientId'];
?>
<tr>
<td><input type='checkbox' name='checkbox[]' id="checkbox" value=<?php echo $r; ?>></td>
<td><?php echo $row['patientId']; ?></td>
<td><?php echo $row['patientName']; ?></td>
<td><?php echo $row['DOB']; ?></td>
<td><?php echo $row['Gender']; ?></td>
<td><?php echo $row['Address']; ?></td>
<td><?php echo $row['Phone']; ?></td>
<td><?php echo $row['Medicare']; ?></td>
<td><?php echo $row['Doctor']; ?></td>
</tr>
<?php
}
?>
</table>
<table>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="del" type="submit" id="del" value="Delete"></td>
</tr>
</table>
</form>
<?php
if(isset($_POST["del"]))
{
if(isset($_POST["checkbox"]))
echo 'Enter';
$chk = isset($_POST['checkbox']);
$chkcount = count($chk);
for($i=0;$i<$chkcount;$i++){
$del=$chk[$i];
$sql1 = "DELETE FROM 14_patientdetails WHERE id='$del'";
$q = mysqli_query($con,$sql1);
}
if($q){
echo "Success";
}else{
echo 'Fail';
}
}
}
这是错误的:
$chk = isset($_POST['checkbox']);
$chkcount = count($chk);
for($i=0;$i<$chkcount;$i++){
$del=$chk[$i];
您还可以使用一个简单的for循环
如果您想要:
for($i = 0; $i <count($_POST['checkbox']; $i++)
{
// do your stuff..
}
一句话:尝试区分表单、查询,并创建一个从数据库读取的循环,同时将值分配给复选框
这就是我在手机上理解并试图写的内容,
请研究mysqli/PDO以防止SQL注入/XSS
请格式化您的代码并将HTML部分添加到您的问题中。您是否尝试回显$del;并查看是否获得了所需的值?$chk=isset$_POST['checkbox'];。然后,$del=$chk[$i];。这是错误的$chk不是一个数组。我尝试了echo$del。没有打印任何内容。解决方案是什么?这是因为你弄乱了$chk,正如@codeSun提到的。不要将$chk分配给isset;加我看到两个标签和一个结束标签。@riya这不应该是复制/粘贴的。你犯了什么错误?
for($i = 0; $i <count($_POST['checkbox']; $i++)
{
// do your stuff..
}