Fotoalbum v PHP – hledání fotografií
Fotoalbum pro začátečníky dnes doplníme o jednoduché vyhledávání, které umožní spíše lepší orientaci mezi fotografiemi.
Vyhledávání
Na úvodní stránce (index.php) máme v horní liště vpravo zobrazeno malé formulářové pole pro zadání podřetězce k vyhledávání. Uživatel zadá nějaký řetězec a stiskne tlačítko Hledej
. Tím se vyvolá skript search.php
, který si na vstupu vezme předaný řetězec a provede vyhledání nad popisem všech fotografií. Nalezené fotografie zobrazí v přehledném seznamu. Vyhledávání bere ohled na diakritiku a nelze zatím kombinovat logické spojky apod.
Skript search.php
Kostra skriptu je celkem jednoduchá. Na vstup přijde řetězec od uživatele a hned se provede vyhledání a po té se všechny fotografie zobrazí. U každé fotografie bude její popis, datum a informace o dané kolekci, ve které se nalezená fotografie nachází. Fotografie budou seřazeny abecedně podle svého popisu. Skript uvedu po jednotlivých částech, které blíže okomentuji. Nejprve ale obrázek pro základní představu:
Po klepnutí na thumbnail a popis fotografie se zobrazí v novém okně velká fotografie. Po klepnutí na název se zobrazí obsah celé sekce (zavolá se skript show.php
a předá se mu na vstup ID
kolekce). Klepnete-li na rok, zobrazí se seznam všech alb vydaných v daném roce (volá se skript index.php
s parametrem action=rok
a v parametru year
se předává konkrétní rok).
<html>
<head>
<title>Hledani fotografii</title>
</head>
<body>
<h1>Fotoalbum 1.0 – Hledání fotografií</h1>
<hr size=“1″ noshade>
<?
mysql_connect(„localhost“, „login“, „heslo“);
mysql_select_db(„album“);
$dotaz = „select KOLEKCE.ID as KOL_ID, POPIS, THUMB, PHOTO, DATUM, NAZEV, ROK, DOBA from KOLEKCE, FOTKA where FOTKA.KOLEKCE_ID = KOLEKCE.ID and POPIS like ‚%$retezec%‘ order by POPIS“;
$result = mysql_query($dotaz);
$pocet = mysql_num_rows($result);
$ch = mysql_errno();
V úvodní části položíme dotaz na seznam všech fotografií, které obsahují ve sloupci POPIS
podřetězec, který uživatel zadal (to máme zajištěno konstrukcí POPIS like '%$retezec%'
v SQL dotazu). Do proměnné $pocet
si uložíme počet vrácených záznamů, a do proměnné $ch
uložíme návratový kód z databáze.
if (!$ch) {
if ($pocet > 0) {
print „<b>Nalezeno fotografií: </b> <tt>“.$pocet.“</tt><br>“;
print ‚<table border=“0″ cellspacing=“0″ cellpadding=“3″>‘;
while (list ($kol_id, $popis, $thumb, $photo, $datum, $nazev, $rok, $doba) = mysql_fetch_array($result)) {
print „<tr><td valign=\“top\“><a href=\“photos/$photo\“ target=\“_blank\“><img src=\“photos/$thumb\“ border=\“0\“ alt=\“$popis ($datum)\“></a></td><td valign=\“top\“><a href=\“photos/$photo\“ target=\“_blank\“><b>$popis</b></a><br>[<a href=\“show.php?kolekce=$kol_id\“>$nazev</a> ($doba, <a href=\“index.php?action=rok&year=$rok\“>$rok</a>)]</td></tr>“;
}
print „</table>“;
}
else {
print „<b>Nebyla nalezena žádná fotografie!</b><br>“;
}
}
else {
print ‚<font color=“red“>Při přístupu k databázi došlo k chybě!</font><br>‘;
}
mysql_close();
?>
<hr size=“1″ noshade>
<center><a href=“index.php“>Hlavní nabídka</a></center>
</body>
</html>
Pokud operace proběhla úspěšně (proměnná $ch
je rovna nule), ověříme, zda byla nalezena alespoň jedna fotografie. Pokud ano, začneme s konstrukcí HTML tabulky, do které postupně všechny nalezené fotografie zařadíme. Cyklem while
zajistíme, že se pro každou fotografii zjistí všechny potřebné údaje. Pro každou fotografii se pak vytiskne jeden řádek HTML tabulky: v první buňce <TD>
zobrazíme thumbnail, ve druhé buňce pak zobrazíme popis, název kolekce, datum kolekce a rok. Popis, název a rok vytiskneme jako odkazy (s voláním příslušných skriptů, jak jsem uvedl výše).
Celý skript si můžete stáhnout. Uložte jej do hlavního adresáře \Album
.
Mohlo by vás také zajímat
-
Proč je důležité tvořit obsah na váš web?
29. srpna 2024 -
Co je to VRAM a jak ji navýšit bez drahého upgradu?
20. srpna 2024 -
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 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