getConnection(); echo "

Исправление проблем с базой данных

"; try { // 1. Проверяем есть ли категории $stmt = $db->query("SELECT COUNT(*) FROM categories"); $cat_count = $stmt->fetchColumn(); if ($cat_count == 0) { echo "

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

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

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

"; } // 2. Проверяем товары с некорректными category_id $stmt = $db->query(" SELECT COUNT(*) as bad_count FROM products WHERE category_id IS NULL OR category_id NOT IN (SELECT category_id FROM categories) "); $bad_count = $stmt->fetchColumn(); if ($bad_count > 0) { echo "

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

"; // Устанавливаем первую доступную категорию $stmt = $db->query("SELECT category_id FROM categories LIMIT 1"); $first_cat = $stmt->fetchColumn(); if ($first_cat) { $db->exec(" UPDATE products SET category_id = $first_cat WHERE category_id IS NULL OR category_id NOT IN (SELECT category_id FROM categories) "); echo "

✓ Товары исправлены (установлена категория ID: $first_cat)

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

Текущее состояние:

"; // Категории $stmt = $db->query("SELECT category_id, name FROM categories ORDER BY category_id"); echo "

Категории:

"; // Товары $stmt = $db->query(" SELECT p.product_id, p.name, p.category_id, c.name as cat_name FROM products p LEFT JOIN categories c ON p.category_id = c.category_id ORDER BY p.product_id "); echo "

Товары:

"; echo ""; echo ""; while ($row = $stmt->fetch()) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
IDНазваниеКатегория IDКатегория
{$row['product_id']}" . htmlspecialchars($row['name']) . "" . ($row['category_id'] ?: 'NULL') . "" . ($row['cat_name'] ?: 'Без категории') . "
"; echo "

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

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

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

"; } ?>