【发布时间】:2017-01-04 08:28:38
【问题描述】:
我知道这个问题已经被问过很多次,并且我已经阅读了很多答案,但我无法让它发挥作用。我正在尝试创建一个按钮(PHP/HTML)来删除 MySQL 表中的所有记录。我的数据库中有一个名为 tvdbase 的表。我想删除该表中的所有记录,但保留结构。在任何给定时间,表中的行数都不会超过 10 行。
这是我的代码(我已经删除了这个例子中所有不必要的 HTML 代码)
<?php include('includes/database.php'); ?>
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
if($_POST){
//Delete records
$query = "DELETE FROM tvdbase";
$mysqli->query($query) or die($mysqli->error.__LINE__);
// Also tried replacing the 2 lines above with:
// mysqli_query( "DELETE FROM tvdbase" );
$msg = "Entries Deleted Successfully";
header('Location:home.php?msg='.urlencode($msg).'');
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<!-- FORM START -->
<form role="form" method="post" action="delete_all.php">
<!-- BUTTONS START -->
<a class="btn btn-default" href="home.php" role="button">Cancel</a>
<input type="submit" class="btn btn-danger" value="Delete" />
<!-- BUTTONS END -->
</form>
<!-- FORM END -->
</body>
</html>
当我单击删除按钮时,只是重新加载同一页面,数据仍在表中。我还是 PHP 和 MySQL 的新手,所以请原谅错误。任何人都可以阐明我要去哪里错了吗?
我对单行进行了此操作,其中每行的 HTML 表中都有一个删除按钮,代码如下:
<?php include('includes/database.php'); ?>
<?php
//Variable
$id = $_GET['id'];
//Create room select query
$query ="SELECT * FROM tvdbase
WHERE id = $id";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
if($result = $mysqli->query($query)){
//Fetch object array
while($row = $result->fetch_assoc()) {
$tvDate = $row['tvDate'];
$tvCourse = $row['tvCourse'];
$tvRoom = $row['tvRoom'];
}
$result->close();
}
?>
<?php
if($_POST){
//ID Variable
$id = $_GET['id'];
//Delete room
$query = "DELETE FROM tvdbase WHERE id = $id";
$mysqli->query($query) or die($mysqli->error.__LINE__);
// $msg="Entry Deleted";
$msg = "<div class='alert alert-danger'>
Entry Deleted Successfully
</div>";
header('Location:home.php?msg='.urlencode($msg).'');
exit;
}
?>
The form action is delete_room.php?id=<?php echo $id; ?>
【问题讨论】:
-
这张表有关系吗?
-
您要删除还是截断?
-
您在 HTTP POST 请求中寻找 HTTP GET 参数?
-
正如@SaadSuri 所说,您必须与其他表有任何关系...先检查一下并尝试删除所有记录...
-
在插入新行之前删除