使用复选框代码删除无法正常工作

时间:2015-08-17 19:02:21

标签: 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>
    <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';
        }
    }

}

1 个答案:

答案 0 :(得分:0)

这是错误的:

$chk = isset($_POST['checkbox']);
$chkcount = count($chk);
for($i=0;$i<$chkcount;$i++){
    $del=$chk[$i];

现在有太多错误,多个<form>标签和一个关闭</form>

我无法在手机上编辑您的代码,因此我会建议相处的方式。我很确定你自己做的时候会爱上它。

a <td><input type = "checkbox" name = "checkbox" value = "<?php echo $r; ?>"/>Proceed</td>类似于您的代码while-loop

的内容中设置while($row = mysqli_fetch_array($result))

<form>的末尾创建<button>并将用户重定向到另一个页面delete.php。现在,检查它的设置;

if(isset($_POST['checkbox']
{ 
//foreach loop for your query
foreach($_POST['checkbox'] as $val)
{
// check what you're getting..
echo $val;
}}

你也可以使用一个简单的for-loop 如果你想:

for($i = 0; $i <count($_POST['checkbox']; $i++)
{
// do your stuff..
}

底线:尝试区分您的表单,查询并创建一个循环来从数据库中读取,并将值同时分配给您的复选框。

  

这是我理解并尝试用手机写的,   请研究mysqli / PDO以防止SQL注入/ XSS。