Tvůj kód je téměř správný, ale nefunguje z několika důležitých důvodů. Níže uvádím seznam problémů s vysvětlením a návrhem řešení: ?? 1. Formulář nemá atribut enctype="multipart/form-data" Pokud posíláš soubory (např. obrázek), formulář musí mít tento atribut, jinak se soubor vůbec nepřenese. ? Řešení: Změň: html Zkopírovat Upravit
na: html Zkopírovat Upravit ?? 2. Není definována proměnná $kava_id Při vkládání záznamu do tabulky fotky používáš: php Zkopírovat Upravit $stmt->execute([$kava_id, $filePath]); Ale $kava_id není nikde předtím nastavená, což způsobí chybu. ? Řešení: Získej ID poslední vložené kávy pomocí lastInsertId(): php Zkopírovat Upravit $kava_id = $pdo->lastInsertId(); Umísti to hned po vložení kávy: php Zkopírovat Upravit $stmt->execute([ $nazev, $zeme, $prazirna, $stupen, $typ, $chutovy_profil, $overeno ]); $kava_id = $pdo->lastInsertId(); // ‹ tady přidej toto ?? 3. Možná chyba v připojení k databázi — chybí try-catch kolem $pdo PDO při selhání připojení vyhodí výjimku, ale nemáš to obaleno try-catchem. Když se nepřipojí, nenajdeš chybu. ? Doporučení: Obal to do: php Zkopírovat Upravit try { $pdo = new PDO( "mysql:host=$server;dbname=$database;charset=utf8mb4", $username, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] // přidání režimu chyb ); } catch (PDOException $e) { die("Chyba připojení k databázi: " . $e->getMessage()); } ?? 4. Možná chyba v cestě k INI souboru Ujisti se, že cesta k souboru ../../spso.mysql.ini je správná vzhledem ke skriptu, který běží (tedy k tomuto PHP souboru). Pokud je spouštěn z jiné složky, načítání souboru selže. ? Testuj: php Zkopírovat Upravit if (!$data) { die("Nepodařilo se načíst konfigurační soubor."); } ?? 5. Bezpečnostní poznámka — validace a zabezpečení Doporučuji validovat a filtrovat vstupy, hlavně u nahrávání obrázků. Ujisti se, že akceptuješ jen určité MIME typy (image/jpeg, image/png atd.) Použij basename() a pathinfo() rozumně, aby nedošlo k průniku cizích cest. ? Shrnutí potřebných oprav Problém Řešení Chybějící enctype Přidej enctype="multipart/form-data" do formuláře $kava_id není definováno Přidej $kava_id = $pdo->lastInsertId(); po vložení kávy Není ošetřený PDO error Obal připojení do try-catch a přidej ATTR_ERRMODE Potenciálně špatná cesta k INI Zkontroluj a otestuj načtení INI souboru Chybí validace souboru Přidej validaci MIME typu a velikosti souboru Pokud potřebuješ, mohu ti tento kód opravit a poslat funkční verzi. Chceš?