PHP/MySQL:删除一行 ta PHP 页面后出错(已过滤) [英] PHP / MySQL: Error after delete a row ta PHP page (filtered)

查看:31
本文介绍了PHP/MySQL:删除一行 ta PHP 页面后出错(已过滤)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的删除功能有问题.在此之前,我先给大家简单介绍一下系统流程

I have a problem with my delete function. Before that, I will brief to you about the flow of the system

1) 在dashboard_engineer.php,有3个选择选项,分别是团队、时间和时间.

1) At dashboard_engineer.php, there's 3 select options which is team, time from and time to.

2) 用户需要选择 3 个选项,然后按搜索"按钮显示结果.

2) user need to select 3 select option and press button "Search" to display the result.

3) 结果将显示在dashboard_engineer2.php.

3) The result will display at dashboard_engineer2.php.

4) 结果会显示所有数据行,每行包含一个删除按钮.

4) The result will display all data rows and each row contains one delete button.

我的问题是,在我点击按钮删除后,删除成功,但dashboard_engineer2.php页面没有显示与上面第3点相同的结果.结果为空.

My problem is, after I click button delete, it was successful delete but the dashboard_engineer2.php page doesn't display the result that same as point 3 above. The result empty.

我想要的是,删除后,dashboard_engineer2.php 将显示之前已经过滤的剩余数据行.下面是我的代码.

What I want is that, after delete, the dashboard_engineer2.php will display the remaining data rows that already filtered before. Below is my code.

dashboard_engineer.php

dashboard_engineer.php

<?php

    $smt = $conn->prepare("SELECT * FROM ot_team INNER JOIN ot_users ON ot_team.team_id = ot_users.team_id WHERE ot_users.roles_id = 7 AND ot_users.team_id <> 1 ORDER BY ot_users.fullname ASC");
    $smt->execute();
    $data = $smt->fetchAll();

?>

<form method = 'post' action = 'dashboard_engineer2.php' >
  <td width="40%">
    <select class="form-control"  name="team" id="team" required>
      <option value="">Please select...</option>
      <?php foreach ($data as $row2): ?>
      <option value= <?php echo $row2["team_id"]; ?> ><?php echo $row2["fullname"]; ?></option>
      <?php endforeach ?>
    </select>
  </td>
  <td width="1%"></td>
  <td width="20%"><input type="text" name="from" id="from" class="form-control" placeholder="From" required></td>
  <td width="1%"></td>
  <td width="20%"><input type="text" name="to" id="to" class="form-control" placeholder="To" required></td>
  <td width="1%"></td>
  <td width="10%"><button type="submit" value="Search" class="btn btn-primary" >Send</button><td>
</form>

<script>
$(document).ready(function(){
  $.datepicker.setDefaults({
    dateFormat: 'yy-mm-dd'
  });
  $(function(){
    $("#from").datepicker().attr("autocomplete", "off");;
    $("#to").datepicker().attr("autocomplete", "off");;
  });

});
</script>

dashboard_engineer2.php

dashboard_engineer2.php

<?php

    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($sql->rowCount() > 0){

        echo'

        <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 = "30%">Task Name</th>
        <th width = "10%">Status</th>
        <th colspan = "2" 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);

            $report_id = $row["report_id"];

            echo'<tr>';
                echo '<td><input type="checkbox" id="checkItem" name="check[]" value='.$row['report_id'].'></td>';
                echo '<td>'.$report_id.'</td>';
                echo '<td>'.$report_date.'</td>';
                echo '<td>'.$row["task_name"].'</td>';
                echo '<td align="center"><strong>'.$row["report_status"].'</strong></td>';
                echo '<td align="center">';
                echo '<form action = "view_task/view_task.php" method = "post">';
                echo '<input type = "hidden" name = "report_id" value = "'.$report_id.'">';
                echo '<button type = "submit" class="btn-primary">View</button>';
                echo '</form>';

                echo "<form action = 'delete.php' method = 'post' onClick=\"return confirm('Do you want to remove team?')\">";
                echo '<input type = "hidden" name = "from" value = "'.$_POST["from"].'">';
                echo '<input type = "hidden" name = "to" value = "'.$_POST["to"].'">';
                echo '<input type = "hidden" name = "team" value = "'.$_POST["team"].'">';
                echo '<input type = "hidden" name = "report_id" value = "'.$report_id.'">';
                echo '<button type = "submit" class="btn-danger">Delete</button>';
                echo '</form>';

                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 = "23%">Task Name</th>
            <th width = "10%">Status</th>
            <th width = "7%">Action</th>
            </tr>
            <tr>
            <td colspan="5">No report found</td>
            </tr>';
        }
        echo '</body></table></div></div>';

        } 

?>

删除.php

  <?php

        $report_id = $_POST['report_id'];

        $sql = "DELETE FROM ot_report WHERE report_id=:report_id";
        $query = $conn->prepare($sql);
        $query->execute(array(':report_id' => $report_id));

        header("Location: dashboard_engineer2.php");

  ?>

谁能帮我解决这个问题?

Can anyone help me on how to fix this?

推荐答案

这个案例和问题一样PHP/MySQL:成功更新数据后显示一些错误

这是因为在dashboard_engineer2.php 中,如果发布了 from、to、team 变量,您的代码将显示数据库中的数据.

that's because in dashboard_engineer2.php your code will display data from the database if the from, to, team variable is posted.

从delete.php重定向到dashboard_engineer2.php是get方法,之前发布的数据丢失了

from delete.php redirect to dashboard_engineer2.php being the get method and the data that was previously posted is missing

delete.php代码改成这样

<?php
        $report_id = $_POST['report_id'];
        $from = $_POST['from'];
        $to = $_POST['to'];
        $team = $_POST['team'];

        $sql = "DELETE FROM ot_report WHERE report_id=:report_id";
        $query = $conn->prepare($sql);
        $query->execute(array(':report_id' => $report_id));

        // so that the data previously posted is taken
        // when redirecting to the dashboard_engineer2.php page 
        // even though it is a GET method

        header("Location: dashboard_engineer2.php?from={$from}&to={$to}&team={$team}");
?>

dashboard_engineer2.php 有一个细微的变化,就像这样

and there was a slight change in dashboard_engineer2.php to be like this

<?php

    // change the initial conditions to be like this
    // $_REQUEST will get data if there is data in POST or GET

    if(isset($_REQUEST["from"], $_REQUEST["to"], $_REQUEST["team"])){

        $from = $_REQUEST['from'];
        $to   = $_REQUEST['to'];
        $team = $_REQUEST['team'];

        $result = '';
        $query = "SELECT * FROM ot_report LEFT JOIN ot_users ON ot_report.badgeid = ot_users.badgeid WHERE ot_users.team_id = '".$team."' AND report_date BETWEEN '".$from."' AND '".$to."' ORDER BY ot_report.report_date DESC";

        $sql = $conn->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
        $sql -> execute();

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

        echo'

        <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 = "30%">Task Name</th>
        <th width = "10%">Status</th>
        <th colspan = "2" 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);

            $report_id = $row["report_id"];

            echo'<tr>';
                echo '<td><input type="checkbox" id="checkItem" name="check[]" value='.$row['report_id'].'></td>';
                echo '<td>'.$report_id.'</td>';
                echo '<td>'.$report_date.'</td>';
                echo '<td>'.$row["task_name"].'</td>';
                echo '<td align="center"><strong>'.$row["report_status"].'</strong></td>';
                echo '<td align="center">';
                echo '<form action = "view_task/view_task.php" method = "post">';
                echo '<input type = "hidden" name = "report_id" value = "'.$report_id.'">';
                echo '<button type = "submit" class="btn-primary">View</button>';
                echo '</form>';

                echo "<form action = 'delete.php' method = 'post' onClick=\"return confirm('Do you want to remove team?')\">";
                echo '<input type = "hidden" name = "from" value = "'.$from.'">';
                echo '<input type = "hidden" name = "to" value = "'.$to.'">';
                echo '<input type = "hidden" name = "team" value = "'.$team.'">';
                echo '<input type = "hidden" name = "report_id" value = "'.$report_id.'">';
                echo '<button type = "submit" class="btn-danger">Delete</button>';
                echo '</form>';

                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 = "23%">Task Name</th>
            <th width = "10%">Status</th>
            <th width = "7%">Action</th>
            </tr>
            <tr>
            <td colspan="5">No report found</td>
            </tr>';
        }
        echo '</body></table></div></div>';

        } 

?>

这篇关于PHP/MySQL:删除一行 ta PHP 页面后出错(已过滤)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆