新手上路,大佬勿喷
废话不多说 直接上代码
shan.php
<?php
$servername = "localhost"; //数据库服务器名
$username = "#"; //数据库用户名
$password = "#"; //数据库密码
$dbname = "#"; //数据库名
$table = "zbp_post"; //表名
$title_field = "log_Title"; //文章标题字段名
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 查找重复文章标题
$sql = "SELECT $title_field, COUNT(*) as count FROM $table GROUP BY $title_field HAVING count > 1";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<title>Duplicated Posts</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1 class="mt-5 mb-3">检测并删除重复文章</h1>
<a href="delete_all.php" class="btn btn-danger mb-3">一键全部删除</a>
<?php
if ($result->num_rows > 0) {
echo '<div class="list-group">';
// 输出数据
while($row = $result->fetch_assoc()) {
$title = $row[$title_field];
echo "<div class='list-group-item d-flex justify-content-between align-items-center'>";
echo "<p class='mb-0'>" . $title . "</p>";
echo "<a href='delete.php?title=" . urlencode($title) . "' class='btn btn-danger'>删除</a>";
echo "</div>";
}
echo '</div>';
} else {
echo "<div class='alert alert-info'>No duplicated posts found.</div>";
}
$conn->close();
?>
</div>
</body>
</html>
delete.php
<!DOCTYPE html>
<html>
<head>
<title>删除文章</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1 class="mt-5 mb-3">删除文章</h1>
<?php
$servername = "localhost";
$username = "#";
$password = "#";
$dbname = "#";
$table = "zbp_post";
$title_field = "log_Title";
$title = urldecode($_GET['title']);
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql_delete = "DELETE FROM $table WHERE $title_field = '$title' LIMIT 1";
if ($conn->query($sql_delete) === TRUE) {
echo "<div class='alert alert-success'>标题为 '$title' 的重复文章已被删除。 <a href='shan.php'>返回</a></div>";
} else {
echo "<div class='alert alert-danger'>删除文章出错: " . $conn->error . "</div>";
}
$conn->close();
?>
</div>
</body>
</html>
delete_all.php
<!DOCTYPE html>
<html>
<head>
<title>Delete All Duplicates</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1 class="mt-5 mb-3">批量删除</h1>
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
$table = "zbp_post";
$title_field = "log_Title";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 查找重复文章标题
$sql = "SELECT $title_field, COUNT(*) as count FROM $table GROUP BY $title_field HAVING count > 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 遍历每个重复标题的文章
while($row = $result->fetch_assoc()) {
$title = $row[$title_field];
// 删除重复文章,只保留一个
$sql_delete = "DELETE FROM $table WHERE $title_field = '$title' LIMIT 1";
if ($conn->query($sql_delete) === TRUE) {
echo "<div class='alert alert-success'>标题为 '$title' 的重复文章已被删除。</div>";
} else {
echo "<div class='alert alert-danger'>删除文章出错: " . $conn->error . "</div>";
}
}
} else {
echo "<div class='alert alert-info'>未发现重复文章。</div>";
}
$conn->close();
?>
<a href="shan.php" class="btn btn-primary mt-3">Back to list</a>
</div>
</body>
</html>