exec('CREATE TABLE IF NOT EXISTS `migrations` (`migration` VARCHAR(255) NOT NULL, PRIMARY KEY (`migration`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;'); $executed_migrations_stmt = $pdo->query('SELECT migration FROM migrations'); $executed_migrations = $executed_migrations_stmt->fetchAll(PDO::FETCH_COLUMN); $migration_files = glob('db/migrations/*.sql'); sort($migration_files); foreach ($migration_files as $file) { $migration_name = basename($file); if (!in_array($migration_name, $executed_migrations)) { $sql = file_get_contents($file); $pdo->exec($sql); $stmt = $pdo->prepare('INSERT INTO migrations (migration) VALUES (?)'); $stmt->execute([$migration_name]); } } } catch (PDOException $e) { error_log('Migration Error: ' . $e->getMessage()); } // --- END DB MIGRATIONS --- $p_title = 'Цветочный магазин'; $p_description = 'Красивые букеты на любой случай.'; try { $pdo = db(); $stmt = $pdo->query('SELECT * FROM bouquets ORDER BY name ASC'); $bouquets = $stmt->fetchAll(); } catch (PDOException $e) { error_log('DB Error: ' . $e->getMessage()); $bouquets = []; $db_error = 'К сожалению, мы не смогли загрузить букеты в данный момент. Пожалуйста, попробуйте еще раз позже.'; } $status_message = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $customer_name = trim($_POST['name'] ?? ''); $bouquet_id = (int)($_POST['bouquet'] ?? 0); $phone = trim($_POST['phone'] ?? ''); $address = trim($_POST['address'] ?? ''); $delivery_date = trim($_POST['delivery_date'] ?? ''); $note = trim($_POST['note'] ?? ''); if (empty($customer_name) || empty($bouquet_id) || empty($phone) || empty($address) || empty($delivery_date)) { $status_message = '
Пожалуйста, заполните все обязательные поля.
'; } else { try { $sql = "INSERT INTO orders (customer_name, bouquet_id, phone, address, delivery_date, note) VALUES (:name, :bouquet, :phone, :address, :date, :note)"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':name' => $customer_name, ':bouquet' => $bouquet_id, ':phone' => $phone, ':address' => $address, ':date' => $delivery_date, ':note' => $note ]); $status_message = '
Спасибо за ваш заказ! Мы скоро с вами свяжемся.
'; } catch (PDOException $e) { error_log('Order submission error: ' . $e->getMessage()); $status_message = '
Не удалось обработать ваш заказ. Пожалуйста, попробуйте еще раз.
'; } } } ?> <?= htmlspecialchars($p_title) ?>

Искусство простоты

Букеты ручной работы

Наши Букеты

Букеты скоро появятся.
$bouquet): $image_url = $image_urls[$key % count($image_urls)]; ?>

Оформить заказ