iReklama  |  PC Svět  |  vyhledávací centrála  |  Diskuzní fórum  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz - čte si nás 29 čtenářů
 
PC Svět
Hlavní stránka
ASP
Aktuality
Assembler
C,C++
Cracking
Delphi
Diskuze
Grafika
Hardware
Hry a zábava
HTML
Internet
JavaScript
Komunikace
Literatura
Linux
Microsoft Office
Turbo Pascal
Perl
PHP
Software
Tiskové zprávy
Visual Basic
Windows
WWW katalog

Knihovna zdr. kódů

Nabídka skriptů aj.

Homepage autora
Služby
Guestbook
  kniha návštěv pro
  každého
MailForm
  zasílání výsledků
  formulářů na e-mail
Programy
DOS Commander
WinMan
Windows Tools
Informace
O PC Světě
Přehled rubrik
Reklama
Výsledky anket
Přehled novinek
Box s články


ISSN 1213-6042

šéfredaktor
Petr Šťastný
admin@pcsvet.cz

zástupce šéfredaktora
Pavel Rauš
raus@pcsvet.cz

Stránka je optimalizo-
vána pro prohlížeč
Internet Explorer 5.0
při rozlišení 800x600

 © Petr Šťastný 2002
   All rights reserved

PC Svět
ikonka PC Světa



Linux - zdarma a legálně



TOPlist

Vytisknout   Poslat   Komentáře (0)   Přidat komentář

Hledání v PHP a MySQL

Dnes vám ukáži, jak si udělat ne-fulltextové hledání např. ve vašich stránkách podle klíčových slov. Použijeme i databázi MySQL...

Takže nejprve si vytvoříme tabulky v databázi. Budou to Slova a HlSlova.

Struktura tabulky Slova:

CREATE TABLE Slova(
slovo varchar(50) NOT NULL,
url varchar(100) NULL,
nazev varchar(25) NULL,
popis text NULL,
PRIMARY KEY (slovo)
)

Struktura tabulky HlSlova:

CREATE TABLE HlSlova(
slovo varchar(50) NOT NULL,
pocet int(11) NULL,
PRIMARY KEY(slovo)
)

Pro jejich vytvoření můžeme použít skript tabulky.php, který bude vypadat nějak takto:

<?
require "opendb.php";

$tabulka1 = "CREATE TABLE Slova(
slovo varchar(50) NOT NULL,
url varchar(100) NULL,
nazev varchar(25) NULL,
popis text NULL,
PRIMARY KEY (slovo)
)";

$tabulka2 = "CREATE TABLE HlSlova(
slovo varchar(50) NOT NULL,
pocet int(11) NULL,
PRIMARY KEY(slovo)
)";

$vytvor1 = mysql_query("$tabulka1");
$vytvor2 = mysql_query("$tabulka2");

if($vytvor1 && $vytvor2):
echo "Tabulky se udělaly.";
echo "<a href=index.php>Na hlavní stránku</a>";
else:
echo "Tabulky se neudělaly.";
echo "<a href=index.php>Na hlavní stránku</a>";
endif;
?>

Jistě jste si všimli, že načítáme soubor opendb.php, který vypadá nějak takhle:

<?
mysql_connect("localhost","user_name","user_pass");
mysql_select_db("databaze");
?>

Samozřejmě si změňte údaje!

Teď tedy hlavní stránu tj. index.php, jehož zdrojový kód je takovýto:

<?
require "opendb.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Hledání</title>
</head>

<body>
<h2>Hledání</h2>
<form action="index.php?akce=najit" name="najdi"method="post">
<b>Zadej hledané slovo: </b> <input type="text" name="slovo"><br>
<input type="submit" value="Najdi to!">
</form>
<hr>
<?
if($akce=="najit"):
//prohledej databazi jestli v ní je slovo $slovo
$prikaz = mysql_query("SELECT * FROM Slova WHERE slovo LIKE '$slovo%'");

//pokud jsi v databázi našel výskyt slova $slovo tak vypiš všechno co obsahuje $slovo
$num = mysql_num_rows($prikaz);
if($num > 0):
echo "<h2>Výsledky hledání</h2>";
while($zaz = mysql_fetch_array($prikaz)):
$url = $zaz['url'];
$nazev = $zaz['nazev'];
$popis = $zaz['popis'];
echo "<a href=\"$url\">$nazev</a> - $popis<br>\n";
endwhile;
//jinak vypiš že neni možné najít slovo $slovo
else:
echo "Není možné najít slovo $slovo !!<br>\n";
endif;
endif;
//prohledej tabulku HLSlova a pokud tam již takovéto slovo je,
//tak k počtu přičti 1 a pokud není tak ho vlož s počtem 1
$mysql = mysql_query("SELECT * FROM HlSlova WHERE slovo = '$slovo'");
$zaznam = mysql_fetch_array($mysql);
$slovo_db = $zaznam["slovo"];

if($slovo_db==$slovo):
mysql_query("UPDATE HlSlova SET pocet = pocet + 1 WHERE slovo = '$slovo'");
else:
mysql_query("INSERT INTO HlSlova VALUES ('$slovo', 1)");
endif;

?>

</body>

Mno a hledání je na světě. Ale ještě ne tak zcela - zbývá nám totiž skript pridat.php, který přidá údaje do databáze:

<?
require "opendb.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Přidej slovo k hledání</title>
</head>

<body>
<h2>Přidej slovo k hledání</h2><br>
<form action="pridej.php?akce=pridej" method="post">
<b>Url:</b> <input type="text" name="url"><br>
<b>Jméno:</b> <input type="text" name="jmeno"><br>
<b>Popis:</b> <input type="text" name="popis"><br><br>
<b>No a už to <input type="submit" value="odešli"> !</b>
</form>
<hr>
<?
if($akce=="pridej"):
//přidej údaje do db
$SQL = mysql_query("INSERT INTO Slova VALUES ('$jmeno','$url','$jmeno','$popis')");

if($SQL):
echo "Slovo $jmeno se přidalo do DB<br>\n";
echo "<a href=index.php>Na hlavní stránku</a>";
else:
echo "Slovo $jmeno se nepovedlo přidat do DB<br>\n";
echo "<a href=index.php>Na hlavní stránku</a>";
endif;
endif;
?>

</body>
</html>

A hledání je doopravdy na světě :-). Stažení zde.

Autor: David Máka, david.maka@volny.cz, informace a seznam článků


Komentáře k článku

Žádné komentáře k tomuto článku

Přidat komentář


Poslední články ze stejné rubriky
On-line chat v PHP bez použití databáze
Ochrana souborů pomocí sessions
Systém zasílání novinek na e-mail v PHP (2.)
Veřejná galerie obrázků v PHP
Systém zasílání novinek na e-mail v PHP (1.)
Provozovatel:
PES.cz
Poslední články
HW tip - Radeon 9500 na RADEON 9700
Letem světem Internetem - Pivo na internetu
Hledání v PHP a MySQL
Visual Business Cards - vaše vizitka
Shareware ke stažení zdarma (5.)
Hodnocení článku
nejlepší <----> nejhorší
    
Zatím nehodnoceno
Informace o článku
Datum 8.1.2003
Čtenářů 193
Autor David Máka
Rubrika PHP - příklady


Nový redaktor
  Chcete psát články
  pro PC Svět či se
  stát redaktorem?

Články honorovány!

  Informace zde
EInfo
  Chcete být informováni
  o každém novém článku
  na PC Světě?

Zadejte svůj e-mail:

MSN.ATLAS.CZ
Hladat.sk

hlavní stránka  |  vyhledávací centrála  |  Diskuze  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz

Se svými dotazy či problémy se obracejte na diskuzní fórum, věci týkající se PC Světa směřujte na e-mail pcsvet@pcsvet.cz

Šíření obsahu tohoto serveru nebo jeho části je bez souhlasu redakce zakázáno.
(c) PC Svět 2002 - Všechna práva vyhrazena.