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

时间:2015-03-07 13:59:29

标签: php mysql database forms sql-delete

所以我创建了一个包含2个表单的小程序,一个用于向数据库添加数据,另一个用于从中删除。我已经设法创建了第一个输入表单,但我对如何使第二个表单工作有点困惑。在数据库“任务”中,我有一个名为“ID”的表,其中包含“ID”,“名称”和“小时”列

以下是两种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的第一个形式是“添加任务”,插入数据

$servername = "localhost";
$username = "root";
$password = "root";


$conn = new mysqli($servername, $username, $password, "Tasks");


if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
};


if (isset($_GET['submit'])) {

mysqli_select_db ($conn,"Tasks");
$name = $_GET['name'];
$hours = $_GET['hours'];

$sql = "INSERT INTO ID (Name, Hours) VALUES ('".$name."','". $hours."')";
$results = mysqli_query($conn,$sql);


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

用于删除任务的第二种形式的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。我基本上重用了第一种形式的代码。我是否需要从第一个按钮以某种方式区分它?目前该页面显示为完全空白。我是一个完整的新手,所以任何帮助都会受到赞赏。

4 个答案:

答案 0 :(得分:1)

您的SQL语句

"DELETE FROM ID (ID) VALUES ('".$id."')"

错了。

should be

DELETE FROM table_name
WHERE some_column=some_value;

。所以,将你的陈述改为

DELETE FROM ID WHERE ID='$id'

建议

  • 您应该使用POST方法进行数据编辑。
  • 您应该检查输入,确保它不包含SQL语句。一个好方法是使用$stuff = mysql_real_escape_string($_GET["stuff"])

答案 1 :(得分:0)

我看到你在表单中有'ID'的名字,但你正试图获得'id'。这可能是问题

答案 2 :(得分:0)

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

$sql = "DELETE FROM ID WHERE `id`=".$id.";";
$results = mysqli_query($conn,$sql);

答案 3 :(得分:0)

除上述答案外,您还应为name form个标记提供不同的input

<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;
}

这将解决所有问题。

如果您在表单中对type="submit"使用相同的名称,则可以在一个表单上使用POST方法< / strong>和另一个GET方法。

是的mysql_real_escape_string用于阻止 SQL INJECTION