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
-
Jak nainstalovat šablonu ve WordPressu
23. července 2024 -
Jak zvýšit CTR vašeho e-mail marketingu
9. září 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024