Code: Select all
<?php
// 🐞 Дебаг
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// 🔧 База
$config["db_server"] = 'localhost';
$config["db_username"] = 'iam_user';
$config["db_password"] = 'password';
$config["db_database"] = 'mysite_base';
$mysqli = new mysqli(
$config["db_server"],
$config["db_username"],
$config["db_password"],
$config["db_database"]
);
$mysqli->set_charset("utf8mb4");
if ($mysqli->connect_error) {
die("<b class='text-red-600'>Ошибка подключения к базе данных:</b> " . $mysqli->connect_error);
}
// 🪵 Лог
$log_messages = [];
// 📦 Создание таблицы
$mysqli->query("
CREATE TABLE IF NOT EXISTS custom_tag (
tag_id INT PRIMARY KEY,
tag_name VARCHAR(255) NOT NULL,
tag_title VARCHAR(255),
tag_description TEXT
)
");
// 💾 Обработка сохранения одного тега
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['tag_id'])) {
$tag_id = (int) $_POST['tag_id'];
$tag_name = $mysqli->real_escape_string($_POST['tag_name']);
$tag_title = $mysqli->real_escape_string($_POST['tag_title']);
$tag_description = $mysqli->real_escape_string($_POST['tag_description']);
$sql = "
INSERT INTO custom_tag (tag_id, tag_name, tag_title, tag_description)
VALUES ($tag_id, '$tag_name', '$tag_title', '$tag_description')
ON DUPLICATE KEY UPDATE
tag_title = VALUES(tag_title),
tag_description = VALUES(tag_description)
";
if ($mysqli->query($sql)) {
$log_messages[] = ['ok', "✅ Обновлено: <strong>$tag_name</strong> (ID: $tag_id)"];
} else {
$log_messages[] = ['error', "❌ Ошибка при сохранении <strong>$tag_name</strong>: " . $mysqli->error];
}
}
// 📥 Загрузка тегов
$result = $mysqli->query("
SELECT r.tag_id, r.tag_name,
c.tag_title, c.tag_description
FROM rot_tags r
LEFT JOIN custom_tag c ON r.tag_id = c.tag_id
WHERE r.status = 'active'
ORDER BY r.tag_name ASC
");
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Редактор тегов</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 text-gray-800 p-6">
<h2 class="text-2xl font-bold mb-4">Редактирование Title и Description для активных тегов</h2>
<?php foreach ($log_messages as $log): ?>
<?php $type = $log[0]; $msg = $log[1]; ?>
<div class="mb-2 p-3 rounded <?= $type === 'ok' ? 'bg-green-100 border-l-4 border-green-500' : 'bg-red-100 border-l-4 border-red-500' ?>">
<?= $msg ?>
</div>
<?php endforeach; ?>
<div class="grid grid-cols-1 gap-4">
<?php while ($row = $result->fetch_assoc()): ?>
<form method="post" class="bg-white shadow rounded p-4 border border-gray-200">
<input type="hidden" name="tag_id" value="<?= $row['tag_id'] ?>">
<input type="hidden" name="tag_name" value="<?= htmlspecialchars($row['tag_name']) ?>">
<div class="mb-2">
<label class="block text-sm font-medium text-gray-600">Tag name</label>
<div class="mt-1 text-blue-800 font-semibold"><?= htmlspecialchars($row['tag_name']) ?></div>
</div>
<div class="mb-2">
<label class="block text-sm font-medium text-gray-600" for="title_<?= $row['tag_id'] ?>">Title</label>
<input type="text" name="tag_title" id="title_<?= $row['tag_id'] ?>" value="<?= htmlspecialchars($row['tag_title'] ?? '') ?>"
class="mt-1 block w-full border border-gray-300 rounded p-2 shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm">
</div>
<div class="mb-3">
<label class="block text-sm font-medium text-gray-600" for="desc_<?= $row['tag_id'] ?>">Description</label>
<textarea name="tag_description" id="desc_<?= $row['tag_id'] ?>" rows="3"
class="mt-1 block w-full border border-gray-300 rounded p-2 shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm"><?= htmlspecialchars($row['tag_description'] ?? '') ?></textarea>
</div>
<button type="submit" class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-1.5 rounded text-sm font-medium">Сохранить</button>
</form>
<?php endwhile; ?>
</div>
</body>
</html>
ЗЫ: и это уже работает )
ЗЫЫ: и с апдейтами это никак не скажется, не думаю что rot_tags за столько лет изменится или id, или структура name, как порешаем ?))))







