The article PHP - jednoduche vyhladavanie v MySQL is written by PaBi3
Vyhladavanie v PHP a MySQL je sucastou takmer kazdej webovej aplikacie. V clanku by som chcel znazornit, ako take vyhladavanie moze vyzerat.
Moznosti ako vyhladavat v databaze MySQL retazce pomocu PHP je vela. Asi najlepsim a najrychlejsim sposobom vyhladavania je, ak vyuzivate databazove indexy. V tomto clanku sa nimi ale zaoberat nebudeme ale prejdem na vyhladavanie bez ich pomoci. Ako prve co by sme si mali vytvorit alebo predstavit je tabulka s ktorou bude PHP a databaza pracovat. CREATE TABLE clanky( id MEDIUMINT UNSIGNED NOT NULL auto_increment, nadpis VARCHAR(96) NOT NULL, obsah TEXT NOT NULL, PRIMARY KEY(id) ); Vyhladavanie bude fungovat rozsirene(viz. roz. vyhladavanie) urobime si prosty formular a ten bude pre vyhladavanie zatial stacit. Na vyber bude zadanie retazca a potom vybranie akym sposobom chcete vyhladavat. Ci v nadpise alebo v obsahu clanku. Prve co spravime bude vlozenie textu resp. clanku do tabulky. Mozeme si vybrat akykolvek text napr. tento: INSERT INTO clanky(nadpis,obsah) VALUES( 'Konfiguracia PHP a Apache', 'PHP sa konfiguruje velmi lahko. Apache je velmi dobry server a dobre sa mi s nim pracuje. Mam rad aj jeho mod-rewrite.' ) Nadpis bude "Konfiguracia PHP a Apache". Ostatny text bude obsah clanku ulozeny v stlpci "obsah". Myslim, ze teraz mozeme pristupit k suboru na pripojenie do databazy. Subor sa bude volat mysql.php. Vlozime do neho nasledujuci kod: <?php #mysql.php $dbc = mysql_connect("localhost","login","heslo") OR die("Chyba spojenia!<br />n");        mysql_select_db("databaza") OR die("System nenasiel tabulky!<br />n"); ?> Ak nerozumiete niektorym funkciam mozete si ich blizsie prestudovat v clanku PHP pre zaciatocnikov - Databazy, 11.diel. Teraz ak uz sme pripojeny do databazy a pripraveny vyhladavat retazec mozeme zacat. Prve co urobime je subor vyhladavanie.php a vlozime do neho nasledujuci kod: <?php #vyhladavanie.php require_once("mysql.php"); if(isset($_GET[retazec])){     if(empty($_GET[retazec])){         $retazec = FALSE;         $error = "Nezadali ste retazec pre vyhladavanie!<br />n";     } else {         $retazec = $_GET[retazec];     }     if($_GET[podla] == "nadpis"){         $podla = "nadpis";     } elseif($_GET[podla] == "obsah"){         $podla = "obsah";     }         if($retazec){             echo "Vysledky vyhladavania <strong>$retazec</strong>!<br />n";             $retazec = explode(" ",$retazec);             $sql = "SELECT nadpis FROM clanky WHERE $podla LIKE '%".$retazec[0]."%'";             for ($num=1;$num<count($hladaj);$num++) {                 $sql .= "$sql AND $podla LIKE '%".$hladaj[$num]."%'";             }             $sql = "$sql ORDER BY id DESC";             $vysledok = mysql_query($sql);             $pocet = mysql_num_rows($vysledok);             if($pocet == NULL){                 die("Zadany retazec sa v databaze nenachadza!<br />n");             }             while($zaznam = mysql_fetch_object($vysledok)){                 $nadpis = $zaznam->nadpis;                 echo "$nadpis<br />n";             }             unset($nadpis);             echo "<hr />Vysledkov: <strong>$pocet</strong> | <a href='javascript:history.back()' title='Spat'>Spat</a><br />n";         } else {             echo $error;         } } else {     echo "<form action='{$_SERVER[PHP_SELF]}' method='get'>n";     echo "      <fieldset><legend>Zadajte retazec</legend>n";     echo "            Text:<br /><input name='retazec' type='text' /><br />n";     echo "            Hladaj...<br /><select name='podla'>n";     echo "                <option value='nadpis'>V nadpise</option>n";     echo "                <option value='obsah'>V obsahu</option>n";     echo "            </select><br /><br />n";     echo "            <input type='submit' value='Vyhladaj' />n";     echo "      </fieldset>n";     echo "</form>n"; } ?> V zdrojovom kode si mozete vsimnut formular na spodku stranky. Pokial nie je odoslany, zobrazi sa. Ihned po jeho vyplneni a odoslani sa spracuje. Spracovanie prebieha tak, ze sa zadany retazec premeni na pole pomocou funkcie explode(" ", $retazec). Nasledne vyhladava obsah databazy a pokusa sa najst zadany retazec. Ak ma pole $retazec viac ako jeden prvok, zacne cyklicky vyhladavat v databaze dalsie hodnoty pola. Je jedno kolko ich je, pretoze cyklus for ich bude vyhladavat donekonecna kym nevycerpa vsetky hodnoty pola. Nakoniec vyskusame napisat do formulara retazec php a cakat na vysledok. Zobrazi sa nam zaznam z databazy, ktory sme tam na zaciatku clanku vlozili. Skuste si do databazy vlozit este viac clankov a vyhladavat ich obsah. Tento kod je len taka mala kostra pre vyhladavanie. Nie je bezpecny pre pouzitie pretoze nie su osetrene odosielane data – to necham na vas.
PHP - jednoduché vyhľadávanie v MySQL Návrat

PHP - jednoduché vyhľadávanie v MySQL