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
-
Doména .io v ohrožení: Co přinese předání Čagoských ostrovů?
10. října 2024 -
Jak se chránit před podvody na internetu – část 2
14. října 2024 -
9 nejzajímavějších doménových koncovek
19. srpna 2024 -
Co je to DNSSEC, jak funguje a jak si ho nastavit?
14. srpna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024