简体   繁体   English

如何使用MySQL中的PHP中的按钮删除行

[英]How to delete a row using a button in php using mysql

I am having an issue deleting the row from the table. 我在从表中删除行时遇到问题。 When I click on the 'delete' button it does take me to the next page and it says 'Removed 0 rows from player'. 当我单击“删除”按钮时,它确实将我带到下一页,并显示“从播放器中删除了0行”。 Basically, it is executing correctly, but I am unable to delete the selected row. 基本上,它可以正确执行,但是我无法删除所选的行。 I have been able to display and add to the table. 我已经能够显示并添加到表格中。

Player.php Player.php

<table id="table table-bordered">
<tr>
    <th>Id#</th>
    <th>Player(s)</th>
    <th>Position</th>
</tr>

if(!($stmt = $mysqli->prepare("SELECT id_Player, name_Player, position_Player FROM player s ORDER BY position_Player ASC"))){
echo "Prepare failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;
}

if(!$stmt->execute())
{
echo "Execute failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;
}
if(!$stmt->bind_result($id_Player, $name_Player, $position_Player))
{
 echo "Bind failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;   
}

    while($stmt->fetch()){
    echo "<tr><td>  $id_Player </td> <td>  $name_Player </td><td>  $position_Player  </td>";

    ?>
        <td>
            <form id="delete" method="post" action="deletePlayers.php">

                <input type="submit" name="id_Player" value="Delete!"/>    

            </form>
        </td>
    </tr>

deletePlayers.php deletePlayers.php

if(!($stmt = $mysqli->prepare("DELETE FROM player WHERE id_Player  = ?"))){
    echo "Prepare failed: "  . $stmt->errno . " " . $stmt->error;}
if(!($stmt->bind_param("s",$_POST['id_Player']))){
    echo "Bind failed: "  . $stmt->errno . " " . $stmt->error;}
if(!$stmt->execute()){
    echo "Execute failed: "  . $stmt->errno . " " . $stmt->error;}     
else {
    echo "Removed " . $stmt->affected_rows . " row from player. <br/><br/><strong> Returning to 'Add Players'</strong>";}

The problem lies in this line of code, 问题在于这行代码,

if(!($stmt->bind_param("s",$_POST['id_Player']))){}

Here the value of $POST['id_player'] is Delete! 这里$POST['id_player']Delete! because you are passing the name of the input type submit in your HTML code and I think that you don't have any id which equals to Delete! 因为您要在HTML代码中传递输入类型的名称Submit,所以我认为您没有任何等于Delete! id Delete! in your database. 在您的数据库中。

The Solution 解决方案

What you need to do is that you need to use a hidden input which will hold the id_Player value like this, 您需要做的是需要使用一个隐藏的输入,该输入将保存id_Player值,如下所示:

if(!($stmt = $mysqli->prepare("SELECT id_Player, name_Player, position_Player FROM player s ORDER BY position_Player ASC"))){
echo "Prepare failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;
}

if(!$stmt->execute())
{
echo "Execute failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;
}
if(!$stmt->bind_result($id_Player, $name_Player, $position_Player))
{
 echo "Bind failed: "  . $mysqli->connect_errno . " " . $mysqli->connect_error;   
}

    while($stmt->fetch()){
    echo "<tr><td>  $id_Player </td> <td>  $name_Player </td><td>  $position_Player  </td>";

    ?>
        <td>
            <form id="delete" method="post" action="deletePlayers.php">
                <input type="hidden" name="id_Player" value="<?= $id_Player ?>"/>
                <input type="submit" value="Delete!"/>    

            </form>
        </td>
    </tr>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM