Fotoalbum v PHP – nová kolekce fotografií 2.
Dnes plynule navážu na předchozí díl a podíváme se na zbývající (nejdůležitější) část skriptu pro nahrání nové kolekce fotografií do databáze. Předtím se ještě zastavíme u kontroly uživatelských dat.
Kostra skriptu new.php
V tomto díle se budeme zabývat částmi (0) a (3). Pro připomenutí, základní kostra skriptu vypadá následovně:
|
Kontrola uživatelských dat (0)
Než všechno zapíšeme do databáze, potřebujeme mít jistotu, že uživatel vše správně vyplnil. Proto v této nulté části provedeme jednoduchou kontrolu, zda uživatel zadal alespoň ty hodnoty, které jsou povinné (název kolekce, rok…) Pokud se zjistí nějaká nesrovnalost, vypíše se na obrazovce upozornění a znovu se vyvolá původní formulář (hodnoty, které uživatel již zadal, se ve formuláři objeví jako předdefinované). Uživatel tedy opraví údaje a znovu je pošle skriptu na zpracování. Pokud nastane chyba v 1. části, pak přepíšeme proměnnou $krok
na hodnotu 0
, čímž zajistíme opět vyvolání formuláře z části 1, a nezobrazí se formulář z části 2. Kód pro kontrolu zadání názvu, roku a adresáře je celkem jednoduchý:
|
Uložení kolekce do databáze (3)
Ze všech částí skriptu new.php
se dostáváme k té nejsložitější. Všechny údaje od uživatele již máme zadány. Údajů obecně může být velmi mnoho, proto také formulář pro předávání dat používá metodu post
. Zdrojový kód této části neuvedu celý naráz, ale po jednotlivých částech. Ke každé části podám ještě bližší vysvětlení.
V této části opět provedeme dva kroky. Nejprve uložíme do databáze záznam o nové kolekci (naplníme tabulku kolekce
) a poté zpracujeme seznam všech fotografií (tabulka fotka
). Druhá část bude zcela jistě pracnější, podívejme se nejprve na tu jednoduší, první:
|
Prvním voláním funkce mysql()
zjistíme maximální id
existující kolekce. Toto zjištěné číslo zvýšíme o jedničku a máme tak připraveno nové id
pro novou kolekci (máme zaručeno, že bude jedinečné). Pokud uživatel zatrhl ve formuláři, že chce zobrazovat kolekci fotografií po částech, pak nastavíme proměnnou $stranka
na zadanou hodnotu, jinak jí dáme -1
. V tabulce kolekce
pak atribut cast
bude mít buď -1
, nebo konkrétní číslo, které zadal uživatel. Potom vytvoříme příkaz na vložení nové kolekce do tabulky. Provedeme jej (voláním funkce mysql()
) a ověříme, zda-li operace proběhla úspěšně, či nikoli. O výsledku informujeme uživatele na stránce.
Dalším kódem zpracujeme jednotlivé fotografie. Nejprve vypíšeme na stránku upozornění o tom, kam musíme uložit fyzické soubory s fotografiemi:
|
Další kód budeme opakovat v cyklu for (pro každou fotografii provedeme totéž). Zjistíme nové id
fotky (podobně, jak jsme zjišťovali nové id
kolekce). Pokud fotografie nemá zadáno datum, pak jej nastavíme na hodnotu shodnou s předchozí fotografií. Tato rekurzivita nám zajistí, že všechny fotografie budou mít svoje datum. Poté sestrojíme název souboru včetně cesty, kde je uložen. Pokud se mají automaticky generovat názvy souborů (proměnná $generator=1
), zkonstruujeme název podle čísla tak, aby nám zachoval počet znaků (například p0028.jpg
). Máme-li u každé fotografie datum a přesný název souboru včetně cesty, můžeme sestrojit příkaz insert
a fotografii uložit do databáze. Viz následující kód:
|
Skript new.php pro založení nové kolekce fotografií si po stažení uložte do adresáře \album\system
.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
Globální výpadek IT systémů: Může za to jediná aktualizace
19. července 2024 -
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024 -
Praktické rady na zabezpečení redakčního systému WordPress
27. února 2023
Nejnovější
-
Apple jde naproti práci s HDR monitory!
17. ledna 2025 -
Jak využít AI potenciál svého Macu?
9. ledna 2025 -
NIS2: Verifikace údajů vlastníků domén
6. ledna 2025 -
Dostali jste k vánocům PC? Využijte jeho AI potenciál!
3. ledna 2025