Оновлення категорії товару:
"; echo "product_id: $edit_id, category_id: $category_id
"; // Перевіряємо поточний зв'язок $check_stmt = $db->prepare("SELECT * FROM product_categories WHERE product_id = ?"); $check_stmt->execute([$edit_id]); $current_links = $check_stmt->fetchAll(); echo "Поточні зв'язки:
"; echo "";
print_r($current_links);
echo "";
}
// Видаляємо існуючі зв'язки
$delete_links = $db->prepare("DELETE FROM product_categories WHERE product_id = ?");
$delete_result = $delete_links->execute([$edit_id]);
if (isset($_GET['debug_categories'])) {
echo "Результат видалення: " . ($delete_result ? "Успішно" : "Помилка") . "
"; } // Додаємо новий зв'язок $link_stmt = $db->prepare("INSERT INTO product_categories (product_id, category_id) VALUES (?, ?)"); $link_result = $link_stmt->execute([$edit_id, $category_id]); if (isset($_GET['debug_categories'])) { echo "Результат додавання: " . ($link_result ? "Успішно" : "Помилка") . "
"; // Перевіряємо новий зв'язок $check_stmt = $db->prepare("SELECT * FROM product_categories WHERE product_id = ?"); $check_stmt->execute([$edit_id]); $new_links = $check_stmt->fetchAll(); echo "Нові зв'язки:
"; echo "";
print_r($new_links);
echo "";
echo "Помилка при оновленні категорії:
"; echo "" . $e->getMessage() . "
"; echo "УСПІШНЕ ОНОВЛЕННЯ ТОВАРУ!
"; echo "ID товару: " . $edit_id . "
"; echo "Категорія: " . ($category_id ? $category_id : "не вибрана") . "
"; if (!empty($category_id)) { echo "Спроба оновити зв'язок товар-категорія:
"; try { // Перевіряємо, чи вдалося створити таблицю $check_table = $db->query("SHOW TABLES LIKE 'product_categories'"); echo "Таблиця product_categories існує: " . ($check_table->rowCount() > 0 ? 'Так' : 'Ні') . "
"; if ($check_table->rowCount() > 0) { // Видаляємо існуючі зв'язки $delete_links = $db->prepare("DELETE FROM product_categories WHERE product_id = ?"); $delete_result = $delete_links->execute([$edit_id]); echo "Результат видалення старих зв'язків: " . ($delete_result ? "Успішно" : "Помилка") . "
"; // Додаємо новий зв'язок $direct_insert = $db->prepare("INSERT INTO product_categories (product_id, category_id) VALUES (?, ?)"); $insert_result = $direct_insert->execute([$edit_id, $category_id]); echo "Результат вставки нового зв'язку: " . ($insert_result ? "Успішно" : "Помилка") . "
"; // Перевіряємо, чи додався зв'язок $check_link = $db->prepare("SELECT * FROM product_categories WHERE product_id = ? AND category_id = ?"); $check_link->execute([$edit_id, $category_id]); $link_exists = $check_link->fetch(); echo "Зв'язок існує після вставки: " . ($link_exists ? "Так" : "Ні") . "
"; if ($link_exists) { echo "";
print_r($link_exists);
echo "";
}
} else {
// Спробуємо створити таблицю
$db->exec("
CREATE TABLE IF NOT EXISTS product_categories (
product_id INT NOT NULL,
category_id INT NOT NULL,
PRIMARY KEY (product_id, category_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");
echo "Спроба створити таблицю product_categories: Успішно
"; // Спробуємо додати зв'язок $retry_insert = $db->prepare("INSERT INTO product_categories (product_id, category_id) VALUES (?, ?)"); $retry_result = $retry_insert->execute([$edit_id, $category_id]); echo "Результат вставки зв'язку після створення таблиці: " . ($retry_result ? "Успішно" : "Помилка") . "
"; } } catch (Exception $e) { echo "Помилка при оновленні зв'язку: " . $e->getMessage() . "
"; echo "Код помилки: " . $e->getCode() . "
"; } } echo "