Php 单击按钮执行MySQL删除

Php 单击按钮执行MySQL删除,php,mysql,database,Php,Mysql,Database,在我的代码中,我在HTML表中显示了数据库中名为staff的表,我想在HTML表中的每一行添加一个delete按钮,单击该按钮时,它将删除与其关联的记录 基于搜索其他解决方案,我的代码如下所示: staff.php: require_once('../connection.php'); //delete row on button click if(isset($_GET["del"])){ $idc = $_GE

在我的代码中,我在HTML表中显示了数据库中名为staff的表,我想在HTML表中的每一行添加一个delete按钮,单击该按钮时,它将删除与其关联的记录

基于搜索其他解决方案,我的代码如下所示:

staff.php:

require_once('../connection.php');

          //delete row on button click
          if(isset($_GET["del"])){
                    $idc = $_GET["del"];
                    if($VisitorManagement->query("DELETE FROM staff WHERE id=$idc")){
                         header('Location: delete-thankyou.php');
                    } else { 
                        echo "Failed to delete staff member.";
                    }    
                }  

            $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName");

            echo "<table id='staff'>
            <thead>
            <tr>
            <th>Name</th>
            <th>Email</th>
            <th></th>
            </tr>
            </thead>";



            while($row = mysqli_fetch_array($result))
            {   
                echo "<tbody>";
                echo "<tr>";
                echo "<td>" . $row['fullName'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
                echo "<td><a class='button alert' href='staff.php?del=".$row["idc"]."'>Delete</a></td>";
                echo "</tr>";
            }
         echo "</tbody>";   
         echo "</table>";

不幸的是,当我点击其中一个按钮时,它无法删除记录,并回显staff.php中预定义的错误消息。我是不是错过了一些让它工作的东西?

我可以通过将idc的所有实例更改为id来修复它

新代码是:

require_once('../connection.php');

      //delete row on button click
      if(isset($_GET["del"])){
                $id = $_GET["del"];
                if($VisitorManagement->query("DELETE FROM staff WHERE id=$id")){
                     header('Location: delete-thankyou.php');
                } else { 
                    echo "Failed to delete staff member.";
                }    
            }  

        $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName");

        echo "<table id='staff'>
        <thead>
        <tr>
        <th>Name</th>
        <th>Email</th>
        <th></th>
        </tr>
        </thead>";



        while($row = mysqli_fetch_array($result))
        {   
            echo "<tbody>";
            echo "<tr>";
            echo "<td>" . $row['fullName'] . "</td>";
            echo "<td>" . $row['email'] . "</td>";
            echo "<td><a class='button alert' href='staff.php?del=".$row["id"]."'>Delete</a></td>";
            echo "</tr>";
        }
     echo "</tbody>";   
     echo "</table>";
require_once('../connection.php');
//单击按钮删除行
如果(isset($_GET[“del”])){
$id=$\u GET[“del”];
if($VisitorManagement->query(“从职员中删除,其中id=$id”)){
标题('Location:delete thankyou.php');
}否则{
echo“未能删除工作人员。”;
}    
}  
$result=mysqli_query($VisitorManagement,“按全名从员工订单中选择*);
回声“
名称
电子邮件
";
while($row=mysqli\u fetch\u数组($result))
{   
回声“;
回声“;
回显“$row['fullName']”;
回显“$row['email']”;
回声“;
回声“;
}
回声“;
回声“;

我可以通过将idc的所有实例更改为id来修复它

新代码是:

require_once('../connection.php');

      //delete row on button click
      if(isset($_GET["del"])){
                $id = $_GET["del"];
                if($VisitorManagement->query("DELETE FROM staff WHERE id=$id")){
                     header('Location: delete-thankyou.php');
                } else { 
                    echo "Failed to delete staff member.";
                }    
            }  

        $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName");

        echo "<table id='staff'>
        <thead>
        <tr>
        <th>Name</th>
        <th>Email</th>
        <th></th>
        </tr>
        </thead>";



        while($row = mysqli_fetch_array($result))
        {   
            echo "<tbody>";
            echo "<tr>";
            echo "<td>" . $row['fullName'] . "</td>";
            echo "<td>" . $row['email'] . "</td>";
            echo "<td><a class='button alert' href='staff.php?del=".$row["id"]."'>Delete</a></td>";
            echo "</tr>";
        }
     echo "</tbody>";   
     echo "</table>";
require_once('../connection.php');
//单击按钮删除行
如果(isset($_GET[“del”])){
$id=$\u GET[“del”];
if($VisitorManagement->query(“从职员中删除,其中id=$id”)){
标题('Location:delete thankyou.php');
}否则{
echo“未能删除工作人员。”;
}    
}  
$result=mysqli_query($VisitorManagement,“按全名从员工订单中选择*);
回声“
名称
电子邮件
";
while($row=mysqli\u fetch\u数组($result))
{   
回声“;
回声“;
回显“$row['fullName']”;
回显“$row['email']”;
回声“;
回声“;
}
回声“;
回声“;

您应该发布错误消息,以使我们更轻松。@ExoSkeleton321它只显示我在我的staff.php代码中预定义的“未能删除工作人员”错误消息。我已经运行了代码,它在我的计算机上工作。您确定这是$row[“idc”]而不是$row[“id”]?:)您应该尝试使用
catch(异常$e){echo“error:“.$e->getMessage();}
获取实际的错误消息。试试看,让我们知道错误在说什么。你应该发布你得到的错误消息,让我们更容易一点。@ExoSkeleton321它只显示我在我的staff.php代码中预定义的“未能删除工作人员”错误消息。我已经运行了代码,它可以在我的计算机上运行。你确定这是$row[“idc”]而不是$row[“id”]? :)您应该尝试使用
catch(异常$e){echo“error:“.$e->getMessage();}
获取实际的错误消息。试试看,让我们知道错误在说什么。几个安全建议:使用参数化查询来防止SQL注入。如果使用GET请求删除记录,则浏览器预取和基于浏览器的链接检查器将删除任何可见记录。当您使用POST进行删除时,不要忘记CSRF保护。几个安全建议:使用参数化查询来防止SQL注入。如果使用GET请求删除记录,则浏览器预取和基于浏览器的链接检查器将删除任何可见记录。当您使用POST进行删除时,不要忘记CSRF保护。