getConnection(); echo "

Исправление проблем с категориями

"; 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 "

Добавляем основные категории...

"; $db->exec(" INSERT INTO categories (name, slug, description, is_active) VALUES ('Диваны', 'divany', 'Мягкая мебель для гостиной', TRUE), ('Кресла', 'kresla', 'Кресла для гостиной и офиса', TRUE), ('Кровати', 'krovati', 'Мебель для спальни', TRUE), ('Столы', 'stoly', 'Обеденные и рабочие столы', TRUE), ('Стулья', 'stulya', 'Стулья для кухни и офиса', TRUE) "); echo "

✓ Категории добавлены

"; } // 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 "

Исправляем товары с некорректными категориями ($badProducts шт)...

"; // Получаем первую категорию $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 "

✓ Товары исправлены (category_id установлен в $firstCat)

"; } } // 4. Показываем текущее состояние echo "

Текущие категории:

"; $cats = $db->query("SELECT category_id, name FROM categories ORDER BY category_id")->fetchAll(); echo ""; echo ""; foreach ($cats as $cat) { echo ""; } echo "
IDНазвание
{$cat['category_id']}{$cat['name']}
"; echo "

✓ База данных исправлена!

"; } catch (PDOException $e) { echo "

Ошибка: " . $e->getMessage() . "

"; } ?>