PHP: не удалось удалить несколько выбранных данных - PullRequest
0 голосов
/ 17 февраля 2020

В настоящее время я создал систему, которая позволяет пользователю удалять несколько данных с помощью флажка.

Шаг выглядит следующим образом:

1) команда выбора пользователя, время до и время после на приборной панели. php. Пользователь нажимает кнопку «Поиск», чтобы отобразить результат. Для отображения результата используйте AJAX. AJAX перенаправит на диапазон. php

2) Пользователь может выбрать любую строку данных, которая будет отображаться и удаляться.

Моя проблема в том, что функция удаления не удалась, хотя я делаю правильный шаг и код. Ниже приведен текущий код:

range. php

    <?php

    require_once "../../../config/configPDO.php";
    require_once "../../../config/check.php";

    $email = $_SESSION['login_user'];


    if(isset($_POST["From"], $_POST["to"], $_POST["team"]))
    {

    $result = '';
    $query = "SELECT * FROM ot_report LEFT JOIN ot_users ON ot_report.badgeid = ot_users.badgeid WHERE ot_users.team_id = '".$_POST['team']."' AND report_date BETWEEN '".$_POST["From"]."' AND '".$_POST["to"]."' ORDER BY ot_report.report_date DESC";
    $sql = $conn->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $sql -> execute();

    if(isset($_POST['save'])){
        $checkbox = $_POST['check'];
        for($i=0;$i<count($checkbox);$i++){
            $del_id = $checkbox[$i];

            $sql2 = "DELETE FROM ot_report WHERE report_id=:report_id";
            $query2 = $conn->prepare($sql2);
            $query2->execute(array(':report_id' => $del_id));

            header("Location: dashboard.php");
        }
    }


    if($sql->rowCount() > 0)
    {
        echo'

        <form method="post" action="">
        <div><a href="../pdf.php?from='.$_POST["From"].'&to='.$_POST["to"].' &team='.$_POST["team"].'" target="_blank"><u>PDF View</u></a></div><br>
        <div class="row" style="height: 300px; overflow-y: scroll;">
        <div class="col-lg-12 grid-margin stretch-card">
        <table class = "table-bordered" width = "100%">
        <thead>
        <tr>
        <th width = "10%"><input type="checkbox" id="checkAl"> All</th>
        <th width = "3%">id</th>
        <th width = "15%">Date</th>
        <th width = "25%">Supervisor</th>
        <th width = "30%">Task Name</th>
        <th width = "10%">Status</th>
        <th width = "7%">Action</th>
        </tr>
        </thead>
        <tbody>';
        $i=0;
        while($row = $sql->fetch(PDO::FETCH_ASSOC))
        {
            $datereport = $row['report_date'];
            $datereport2 = strtotime($datereport);
            $report_date = date('d M Y', $datereport2);

            $status=$row['report_status'];
            if($status=="Pending")
            {
                $color="color:blue";
            }
            else 
            {
                $color="color:green";
            }

            if ($row['ot_start'] == '00:00:00'){
                $ot_start = '-';
            }else{}

            if ($row['ot_end'] == '00:00:00'){
                $ot_end = '-';
            }else{}


            echo'<tr>';
                echo '<td><input type="checkbox" id="checkItem" name="check[]" value='.$row['report_id'].'></td>';
                echo '<td>'.$row["report_id"].'</td>';
                echo '<td>'.$report_date.'</td>';
                echo '<td>'.$row["fullname"].'</td>';
                echo '<td>'.$row["task_name"].'</td>';
                echo '<td align="center" style='.$color.'><strong>'.$status.'</strong></td>';
                echo '<td align="center">';
                echo '<a class="btn-view btn-primary btn-sm" href="view_task/view_task.php?report_id='. $row["report_id"] .'" data-toggle="tooltip">View</a>';
                echo '<a class="btn-view btn-danger btn-sm" href="delete.php?report_id='. $row["report_id"] .'" onClick=\'return confirm("Do you want to remove team?")\'>Delete</a></td>';
                echo '</td>';

            echo '</tr>';
            $i++;

        }
            echo '<tr>';
                echo '<td><p align="center"><button type="submit" class="btn-danger btn-sm" name="save">DELETE</button></p></td>';
            echo '</tr>';
            echo '</form>';

    }
    else
    {
        echo '
        <table class = "table-bordered" width = "100%">
        <thead>
        <tr>
        <th width = "5%">id</th>
        <th width = "12%">Date</th>
        <th width = "29%">Supervisor</th>
        <th width = "23%">Task Name</th>
        <th width = "7%">From</th>
        <th width = "7%">To</th>
        <th width = "10%">Status</th>
        <th width = "7%">Action</th>
        </tr>
        <tr>
        <td colspan="8">No report found</td>
        </tr>';
    }
    echo '</body></table></div></div>';

    }

    ?>

    <script>
    $("#checkAl").click(function () {
    $('input:checkbox').not(this).prop('checked', this.checked);
    });
    </script>

Может кто-нибудь знает, как решить проблему?

1 Ответ

0 голосов
/ 17 февраля 2020
$sql2 = "DELETE FROM ot_report WHERE report_id=:report_id";

Попробуйте изменить это на:

$query = "DELETE FROM ot_report WHERE report_id LIKE ?";            
$sql2 = $conn->prepare($query);
$sql2->bind_param("i", $del_id);
$sql2->execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...