用按钮删除MySQL行

时间:2015-10-22 18:51:40

标签: php mysql

我真的在这里挣扎,不知道为什么。当用户单击与他们尝试删除的行相同的按钮中的删除按钮时,我试图删除数据库中的一行。

Home.php

<table class="table table-bordered table-striped table-responsive sortable">
                        <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 id='" .$row['id']. "' value='" .$row['id']. "' class='btn btn-danger'> Delete</button></td>";

                            }
                        ?>
                    </table>

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 = mysqli_query($conn, "DELETE FROM Book1 WHERE id='$userID'");
    }
    if($delete){
        echo "Record deleted successfully";
    }else{
        echo "Sorry, record could not be deleted";
    }
  }
?>

2 个答案:

答案 0 :(得分:2)

如果您使用mysqli连接,请始终使用mysqli。 我在这里添加了一个:

        $delete = mysqli_query($conn, "DELETE FROM Book1 WHERE id='$userID'");

然后将按钮更改一次。您没有将变量传递给当前,您可以通过向URL添加问号并指定变量来实现。此外,由于您使用的是Twitter引导程序,因此类btn的锚点看起来像一个按钮,因此不需要表单。

echo "<td><a href='deletepage.php?id=" .$row['id']. "' value='" .$row['id']. "' class='btn btn-danger'> Delete</a></td>";

答案 1 :(得分:2)

  1. while($row = mysql_fetch_array($query)) {开始,看起来你开始<tr>,但看起来你似乎没有关闭它。在<td>的底部,您会想要一个回声&#34;&#34 ;; 没什么大不了的,这不会解决你的问题。

  2. 就像我在评论中说的那样,行动并不是依据<button>的属性。请参阅here

  3. 您可能需要做的是将其包装在您说过的表单中,然后将type="submit"添加到按钮标记。

    <form action="deletepage.php" method="GET">
        ...table html
        echo "<td><button id='" .$row['id']. "' type="submit" value='" .$row['id']. "' class='btn btn-danger'> Delete</button></td>";
    </form>
    

    这听起来像你的问题,至少对我来说。您需要向deletepage.php提交一个html表单,或者尝试另一个类似于对deletepage.php的AJAX请求的路由。