使用PHP从MySQL数据库中删除数据的表单

使用PHP从MySQL数据库中删除数据的表单,php,mysql,database,forms,sql-delete,Php,Mysql,Database,Forms,Sql Delete,所以我创建了一个包含两个表单的小程序,一个用于向数据库添加数据,另一个用于从数据库中删除数据。我已经成功地创建了第一个输入表单,但是对于如何让第二个表单工作,我有点困惑。在数据库“tasks”中,我有一个名为“ID”的表,其中有“ID”、“Name”和“Hours”列 下面是这两个HTML表单的外观 <h2>Add Tasks</h2> <form action="test.php" method="get"> Name of Task: <input

所以我创建了一个包含两个表单的小程序,一个用于向数据库添加数据,另一个用于从数据库中删除数据。我已经成功地创建了第一个输入表单,但是对于如何让第二个表单工作,我有点困惑。在数据库“tasks”中,我有一个名为“ID”的表,其中有“ID”、“Name”和“Hours”列

下面是这两个HTML表单的外观

<h2>Add Tasks</h2> 
<form action="test.php" method="get">
Name of Task: <input type="text" name="name"><br />
Hours: <input type="number" name="hours"><br />
<input type="submit" value="Add" name="submit">
</form>

<h2>Delete Tasks</h2> 
<form action="delete.php" method="get">
ID: <input type="number" name="ID"><br />
<input type="submit" value="Delete">
</form>
第二个表单是PHP,用于删除任务。这是不起作用的部分

if (isset($_GET['submit'])) {
mysqli_select_db ($conn, "Tasks");
$id = $_GET['id'];
$sql = "DELETE FROM ID (ID) VALUES ('".$id."')";

$query = "SELECT `Name` FROM `ID`";
$result = mysqli_query($conn, $query);
$x=0;

我应该如何格式化第二个按钮的PHP。我基本上已经为第一个表单重用了代码。我是否需要以某种方式将其与第一个按钮区分开来?目前该页面显示为完全空白。我是一个完全的新手,因此任何帮助都将不胜感激。

我看到您在表单中有名称“ID”,但您正在尝试获取“ID”。这可能就是问题所在

用于删除的sql语句应该类似于下面的代码段

$sql = "DELETE FROM ID WHERE `id`=".$id.";";
$results = mysqli_query($conn,$sql);
您的SQL语句

这是错误的

。所以,把你的陈述改为

DELETE FROM ID WHERE ID='$id'
建议
  • 您应该使用
    POST
    方法执行操作,这将导致数据编辑
  • 您应该检查输入,确保它不包含SQL语句。一个好方法是使用
    $stuff=mysql\u real\u escape\u字符串($\u GET[“stuff”])

除上述答案外,您还应为两个
表单
输入
标签指定不同的
名称

<h2>Add Tasks</h2> 
<form action="test.php" method="get">
    Name of Task: <input type="text" name="name"><br />
    Hours: <input type="number" name="hours"><br />
    <input type="submit" value="Add" name="submit">
</form>

<h2>Delete Tasks</h2> 
<form action="delete.php" method="get">
    ID: <input type="number" name="ID"><br />
    <input type="submit" value="Delete" name="delete">
</form>
对于从数据库中删除,您可以使用

if (isset($_GET['delete'])){
    mysqli_select_db ($conn, "Tasks");
    $id = $_GET['id'];
    $sql = "DELETE FROM ID (ID) WHERE ID='".mysql_real_escape_string($id)."' ;

    $query = "SELECT `Name` FROM `ID`";
    $result = mysqli_query($conn, $query);
    $x=0;
}
这将解决所有问题

如果对两个表单中的
type=“submit”
使用相同的名称,则可以在一个表单上使用
POST
方法,在另一个
表单上使用
GET
方法


是的
mysql\u real\u escape\u string
用于防止SQL注入

首先,您应该向delete按钮添加一个名称,以便能够在服务器端的isset($\u GET[“delete”)
上识别它。然后您应该熟悉SQL查询。从ID(ID)值删除-我不熟悉该语法。另外,请参阅PHP/PDO/mysqli中的准备语句
DELETE FROM ID WHERE ID='$id'
<h2>Add Tasks</h2> 
<form action="test.php" method="get">
    Name of Task: <input type="text" name="name"><br />
    Hours: <input type="number" name="hours"><br />
    <input type="submit" value="Add" name="submit">
</form>

<h2>Delete Tasks</h2> 
<form action="delete.php" method="get">
    ID: <input type="number" name="ID"><br />
    <input type="submit" value="Delete" name="delete">
</form>
if (isset($_GET['submit'])){
    // your code here
}
if (isset($_GET['delete'])){
    mysqli_select_db ($conn, "Tasks");
    $id = $_GET['id'];
    $sql = "DELETE FROM ID (ID) WHERE ID='".mysql_real_escape_string($id)."' ;

    $query = "SELECT `Name` FROM `ID`";
    $result = mysqli_query($conn, $query);
    $x=0;
}