所以我创建了一个包含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。我基本上重用了第一种形式的代码。我是否需要从第一个按钮以某种方式区分它?目前该页面显示为完全空白。我是一个完整的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您的SQL语句
"DELETE FROM ID (ID) VALUES ('".$id."')"
错了。
DELETE FROM table_name WHERE some_column=some_value;
。所以,将你的陈述改为
DELETE FROM ID WHERE ID='$id'
POST
方法进行数据编辑。$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 。