使用 PHP 在 MYSQL 中删除表行

Cha*_* L. 0 html javascript php mysql jquery

我已经浏览了现有的问题,我不相信他们正在回答我的问题。我创建了一个使用 PHP 和 MySQL 填充的表。我已经让我的add功能正常工作,因此用户可以添加新行,但是我希望用户删除特定行。每行都有一个删除图标,当单击该图标以仅删除该行时。

Home.php (创建表的地方)

<table class="table table-bordered table-striped table-responsive">
    <tr class="header">
        <td>id</td>
        <td>Rep</td>
        <td>Date</td>
        <td>Name</td>
        <td>P_O</td>
        <td>Due Date</td>
        <td>Terms</td>
        <td>Aging</td>
        <td>Open Balance</td>
        <td>remove</td>
    </tr>
    <?php 
        while($row = mysql_fetch_array($query))
        {
            $className ="";
            if ($row['Aging'] >= 45) {
                $className="danger";
            }
            else if($row['Aging'] >= 25 && $row['Aging'] <= 44) {
                $className="warning";
            }

            echo "<tr class='$className'>";
            echo "<td>".$row['id']."</td>";
            echo "<td>".$row['Rep']."</td>";
            echo "<td>".$row['Date']."</td>";
            echo "<td>".$row['Name']."</td>";
            echo "<td>".$row['P_O']."</td>";
            echo "<td>".$row['Due_Date']."</td>";
            echo "<td>".$row['Terms']."</td>";
            echo "<td>".$row['Aging']."</td>";
            echo "<td>".$row['Open_Balance']."</td>";
            echo "<td><button type='button' class='btn btn-link'><i class='iconhover fa fa-check-circle fa-2x'></i></button></td>";
        }
    ?>
</table>
Run Code Online (Sandbox Code Playgroud)

这是删除按钮:

<button type='button' class='btn btn-link'><i class='iconhover fa fa-check-circle fa-2x'></i></button>
Run Code Online (Sandbox Code Playgroud)

我希望它在单击时删除其当前部分的行。有什么帮助吗?

这是我的新代码,但它似乎仍然没有删除该行 home.php

while($row = mysql_fetch_array($query))
{
    $className ="";
    if ($row['Aging'] >= 45) {
        $className="danger";
    }
    else if($row['Aging'] >= 25 && $row['Aging'] <= 44) {
        $className="warning";
    }

    echo "<tr class='$className'>";
    echo "<td>".$row['id']."</td>";
    echo "<td>".$row['Rep']."</td>";
    echo "<td>".$row['Date']."</td>";
    echo "<td>".$row['Name']."</td>";
    echo "<td>".$row['P_O']."</td>";
    echo "<td>".$row['Due_Date']."</td>";
    echo "<td>".$row['Terms']."</td>";
    echo "<td>".$row['Aging']."</td>";
    echo "<td>".$row['Open_Balance']."</td>";
   echo "<td><button action='deletepage.php' method='POST' value='" .$row['id']. "' class='btn btn-danger'> Delete</button></td>";
}
Run Code Online (Sandbox Code Playgroud)

deletepage.php

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

if(isset($_GET['id'])){
    $userID = (int) $_GET['id'];
    if(!empty($_GET['id'])) {
        $delete = mysql_query("DELETE FROM Book1 WHERE id='$userID'");
    }
    if($delete) {
        echo "Record deleted successfully";
    }
    else {
        echo "Sorry, record could not be deleted";
    }
  }
Run Code Online (Sandbox Code Playgroud)

Mi-*_*ity 5

您可以将其定向到删除页面,如下所示:

<a href="deletepage.php?<?php echo $_POST['userid']; ?>" class="btn btn-danger"> Delete</a>
Run Code Online (Sandbox Code Playgroud)

或者使用 javascript AJAX 调用:

 <a href="#" class="btn btn-danger" onclick="confirmDeletion(<?php echo $_POST['userid']; ?>);"> Delete</a>
Run Code Online (Sandbox Code Playgroud)

并使用$.post到删除页面

更新: 删除页面deletepage.php可能包含以下内容:

<?php
require('dbconn.php');
if(isset($_POST['id'])){
    $userID = (int) $_POST['id'];
    if(!empty($_POST['id'])){
        $delete = mysql_query("DELETE FROM users WHERE id='$userID'");
    }
    if($delete){
        echo "Record deleted successfully";
    }else{
        echo "Sorry, record could not be deleted";
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

用户.php

<?php
require('dbconn.php');
$get = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($get)) {
    echo '<p>';
    echo $row['id'] . ' - ' . $row['user'];
?>
    <a href="#" style="color:red;" onclick="confirmDeletion(<?php echo $row['id']; ?>);"> Delete</a>
    </p>
<?php } ?>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
    function confirmDeletion(id){
        $.post('deletepage.php', { id:id }, function(data){
            alert(data);
            location.reload();
        }); 
    }
</script>
Run Code Online (Sandbox Code Playgroud)

PS: 非常推荐mysql_query()这种方式退出使用,改用PDO,避免SQL注入