Add .gitignore and project files
This commit is contained in:
69
fix_categories.php
Normal file
69
fix_categories.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
// fix_categories.php
|
||||
require_once 'config/database.php';
|
||||
|
||||
$db = Database::getInstance()->getConnection();
|
||||
|
||||
echo "<h2>Исправление проблем с категориями</h2>";
|
||||
|
||||
try {
|
||||
// 1. Удаляем категорию с ID=0 если она есть
|
||||
$db->exec("DELETE FROM categories WHERE category_id = 0");
|
||||
|
||||
// 2. Проверяем, есть ли категории
|
||||
$catCount = $db->query("SELECT COUNT(*) FROM categories")->fetchColumn();
|
||||
|
||||
if ($catCount == 0) {
|
||||
echo "<p>Добавляем основные категории...</p>";
|
||||
$db->exec("
|
||||
INSERT INTO categories (name, slug, description, is_active) VALUES
|
||||
('Диваны', 'divany', 'Мягкая мебель для гостиной', TRUE),
|
||||
('Кресла', 'kresla', 'Кресла для гостиной и офиса', TRUE),
|
||||
('Кровати', 'krovati', 'Мебель для спальни', TRUE),
|
||||
('Столы', 'stoly', 'Обеденные и рабочие столы', TRUE),
|
||||
('Стулья', 'stulya', 'Стулья для кухни и офиса', TRUE)
|
||||
");
|
||||
echo "<p style='color: green;'>✓ Категории добавлены</p>";
|
||||
}
|
||||
|
||||
// 3. Исправляем товары с category_id = 0 или NULL
|
||||
$badProducts = $db->query("
|
||||
SELECT COUNT(*) FROM products
|
||||
WHERE category_id IS NULL OR category_id = 0 OR
|
||||
category_id NOT IN (SELECT category_id FROM categories)
|
||||
")->fetchColumn();
|
||||
|
||||
if ($badProducts > 0) {
|
||||
echo "<p>Исправляем товары с некорректными категориями ($badProducts шт)...</p>";
|
||||
|
||||
// Получаем первую категорию
|
||||
$firstCat = $db->query("SELECT category_id FROM categories LIMIT 1")->fetchColumn();
|
||||
|
||||
if ($firstCat) {
|
||||
$db->exec("
|
||||
UPDATE products
|
||||
SET category_id = $firstCat
|
||||
WHERE category_id IS NULL OR category_id = 0 OR
|
||||
category_id NOT IN (SELECT category_id FROM categories)
|
||||
");
|
||||
echo "<p style='color: green;'>✓ Товары исправлены (category_id установлен в $firstCat)</p>";
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Показываем текущее состояние
|
||||
echo "<h3>Текущие категории:</h3>";
|
||||
$cats = $db->query("SELECT category_id, name FROM categories ORDER BY category_id")->fetchAll();
|
||||
|
||||
echo "<table border='1' cellpadding='5'>";
|
||||
echo "<tr><th>ID</th><th>Название</th></tr>";
|
||||
foreach ($cats as $cat) {
|
||||
echo "<tr><td>{$cat['category_id']}</td><td>{$cat['name']}</td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
echo "<p style='color: green; margin-top: 20px;'>✓ База данных исправлена!</p>";
|
||||
|
||||
} catch (PDOException $e) {
|
||||
echo "<p style='color: red;'>Ошибка: " . $e->getMessage() . "</p>";
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user