Vyhľadávač v PHP a MySQL 3.
V poslednom, treťom článku o tvorbe vyhľadávača v PHP, si ukážeme vytváranie jednoduchej štatistiky pre vyhľadávané údaje. Štatistika vyhľadávania nám poskytne údaje o vyhľadávaných slovách a celkovo o používaní vyhľadávača.
Na začiatku si vytvoríme tabulku s nasledovnými položkami:
Slovo
– sem sa zapíše každý hľadaný textHladane
– koľko krát bol text hľadanýNajdene
– koľko záznamov bolo pri jeho poslednom hľadaní nájdenýchNaposledy
– kedy bolo toto slovo hľadané naposledy
Vytvorenie tabulky bude vyzerať takto:
CREATE TABLE informacie(
Slovo varchar(50),
Hladane int,
Najdene int,
Naposledy datetime);
Táto tabuľka úplne postačí pre zapisovanie tých najzákladnejších údajov o vyhľadávaní. Pri každom vyhľadávaní sa najprv pozrieme do databázi, aby sme vedeli, či už práve hľadaný text niekto niekedy hľadal. Ak áno, tak tento záznam iba aktualizujeme. Pokiaľ ho ale nikto nehľadal, tak vytvoríme nový záznam s aktuálnymi výsledkami.
$datum = Date(„Y-m-d H:i:s“); // formát dátumu vhodný pre databázu
$info = MySQL_Query(„SELECT Hladane FROM informacie WHERE Slovo = ‚$slovo'“); // zistíme, či slovo už bolo hľadané
$pocet_info = MySQL_NumRows($info); // zistíme počet
if($pocet_info>0): // ak slovo už bolo hľadané, záznam iba aktualizujeme
for($l=0;$l<1;$l++):
$hladane2 = MySQL_Result($info, $l, „Hladane“);
$hladane = $hladane2 + 1;
endfor;
$update = MySQL_Query(„UPDATE informacie SET Hladane = ‚$hladane‘, Najdene = ‚$pocet‘, Naposledy = ‚$datum‘ WHERE Slovo = ‚$slovo'“);
else: // ak slovo ešte nebolo nikdy hľadané, tak ho do databázy pridáme
$vyhladavanie = MySQL_Query(„INSERT INTO informacie VALUES(‚$slovo‘, ‚1‘, ‚$pocet‘, ‚$datum‘)“);
endif;
Prejdime si ešte raz túto časť slovne. Vytvoríme premennú $datum, ktorá bude obsahovať aktuálny časový údaj vo formáte vhodnom pre zápis do databázi. Nazrieme do tabulky „informacie“ a zistíme, či už práve hľadané slovo bolo niekedy hľadané. Pokiaľ bolo, tak ho jednoducho aktualizujeme – aktualizujeme počet hľadaní, počet nájdených záznamov a aktuálny dátum. Pokiaľ slovo hľadané doposiaľ nebolo, tak pre neho vytvoríme nový záznam.
K vyhľadávaču nám pribudol ešte jeden nový súbor statistiky.php
. V ňom budeme mať prehľad štatistík o našom vyhľadávači. Tento súbor môžete poprípade sprístupniť pod heslom, aby k nemu nemal prístup bežný užívateľ. Celý skript vyzerá takto:
<style type=“text/css“>
<!–
.normal {FONT-SIZE: 12px; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; margin-left:7; margin-right:7;}
.button {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; background: #6EACF9; font-style: bold; color: #10408F;}
.textinput {BACKGROUND-COLOR: #6EACF9; BORDER-RIGHT: silver 1px solid; BORDER-TOP: silver 1px solid; BORDER-LEFT: silver 1px solid; COLOR: #10408F; BORDER-BOTTOM: silver 1px solid; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;}
–>
</style>
<div class=“normal“><h3>Štatistika vyhľadávania</h3></div>
<?
require „db.php“; // pripojime sa k databazi
if(Empty($limit)) $limit = „50“;
$vysledok = MySQL_Query(„SELECT * FROM informacie ORDER BY Hladane DESC LIMIT 0,$limit“);
$pocet = MySQL_NumRows($vysledok);
$a = 1;
echo „<table border=\“0\“ Cellpadding=\“0\“ Cellspacing=\“0\“>“;
echo „<tr bgcolor=\“#005FA4\“><td><div class=\“normal\“ align=\“center\“><font color=\“white\“><b>Hľadané slovo</b></font></div></td><td><div class=\“normal\“ align=\“center\“><font color=\“white\“><b>Počet hľadaní</b></font></div></td><td><div class=\“normal\“ align=\“center\“><font color=\“white\“><b>Počet nájdených odkazov</b></font></div></td><td><div class=\“normal\“ align=\“center\“><font color=\“white\“><b>Naposledy hľadané</b></font></div></td></tr>“;
for($i=0;$i<$pocet;$i++):
$slovo = MySQL_Result($vysledok, $i, „Slovo“);
$hladane = MySQL_Result($vysledok, $i, „Hladane“);
$najdene = MySQL_Result($vysledok, $i, „Najdene“);
$naposledy = MySQL_Result($vysledok, $i, „Naposledy“);
if(($a%2)==1):
echo „<tr bgcolor=\“#EEEEEE\“><td><div class=\“normal\“>$slovo</div></td><td><div class=\“normal\“>$hladane</div></td><td><div class=\“normal\“>$najdene</div></td><td><div class=\“normal\“>$naposledy</div></td></tr>“;
else:
echo „<tr bgcolor=\“white\“><td><div class=\“normal\“>$slovo</div></td><td><div class=\“normal\“>$hladane</div></td><td><div class=\“normal\“>$najdene</div></td><td><div class=\“normal\“>$naposledy</div></td></tr>“;
endif;
$a++;
endfor; echo „</table>“;
$naj_slovo1 = MySQL_Query(„SELECT * FROM informacie ORDER BY Hladane DESC LIMIT 0,1“);
$naj_slovo = MySQL_Result($naj_slovo1, 0, „Slovo“);
$vyhladavanie = MySQL_Query(„SELECT * FROM informacie“);
$pocet_vyhladavani = MySQL_NumRows($vyhladavanie);
$pocet_vyhl = 0;
for($e=0;$e<$pocet_vyhladavani;$e++):
$vyhl = MySQL_Result($vyhladavanie, $e, „Hladane“);
$pocet_vyhl += $vyhl;
endfor;
$pocet_najd = 0;
for($x=0;$x<$pocet_vyhladavani;$x++):
$najd = MySQL_Result($vyhladavanie, $x, „Najdene“);
$pocet_najd += $najd;
endfor;
$naposledy = MySQL_Query(„SELECT Naposledy FROM informacie ORDER BY Naposledy DESC LIMIT 0,1“);
$kedy2 = MySQL_Result($naposledy, 0);
$kedy = EReg_Replace(„([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})“,“\\3. \\2. \\1 \\4:\\5:\\6″, $kedy2);
?>
<div class=“normal“>
Najhľadanejšie slovo: <b><?=$naj_slovo?></b><br>
Počet uskutočnených všetkých vyhľadávaní: <b><?=$pocet_vyhl?></b><br>
Celkový počet nájdených záznamov: <b><?=$pocet_najd?></b><br>
Posledné uskutočnené hľadanie: <b><?=$kedy?></b><br>
</div>
<br>
<form action=“statistiky.php“ method=“get“>
<div class=“normal“>
Limit:
<input type=“text“ class=“textinput“ name=“limit“ size=“4″ maxlength=“3″ value=“<?=$limit?>“>
<button type=“submit“ class=“button“>Zobraziť</button>
</div>
</form>
</body>
</html>
Vyhľadávač si do svojich stránok vložíte naozaj jednoducho, po väčšine stačí len prepísať pár premenných a názvov, vyhľadávač funguje ľahko a bezproblémovo. Podrobnejšie o tom som písal v predchádzajúcich článkoch. Kompletný vyhľadávač som pomenil podľa niektorých námetov z príspevkov v diskusii a preto ponúkam jeho vylepšenú verziu.
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
-
Proč je důležité tvořit obsah na váš web?
29. srpna 2024 -
Jak se chránit před podvody na internetu – část 1
8. října 2024 -
Zvýšení výkonu WiFi signálu: Jak a proč používat WiFi zesilovače
28. června 2023
Nejnovější
-
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 -
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