Pole wyszukiwania jest najważniejszym elementem na stronie, szczególnie w przypadku CMSów. W tym poście przedstawione zostaną najbardziej podstawowe techniki wyszukiwania, w tym z wykorzystaniem klauzuli LIKE w zapytaniach SQL.
Zastępowanie spacji
Przed wykonaniem zapytania wyszukiwania w SQL dobrze jest zamienić spacje obecne w zmiennej przesyłanej za pomocą formularza na znaki %. W tym celu skorzystamy z funkcji PHP str_replace().
Poniżej znajduje się przykładowe zapytanie w SQL i wyniki w bazie danych dla szukanej frazy „house sezon”, gdzie w zapytaniu spacje zostały zamienione na %.
1 | SELECT * FROM `news` WHERE text LIKE '%house%sezon%' |
Tworzymy przykładową tabelę, którą będziemy przeszukiwać.
1 2 3 4 5 | CREATE TABLE art ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `title` VARCHAR ( 255 ), PRIMARY KEY (`id`) ) ; |
Teraz tworzymy plik search.php odpowiedzialny za wyświetlania pola do wyszukiwania i wyników wyszukiwania.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php include("config.php"); if($_SERVER["REQUEST_METHOD"] == "POST") { $q = $_POST['q']; $q = mysql_escape_string($q); $q_fix = str_replace(" ","%",$q); // zamieniamy spacje na % $sql = mysql_query("SELECT title FROM art WHERE title LIKE N'%$q_fix%'"); } ?> <html> <body> <form method="post" action=""> <input type="text" name="q" /> <input type="submit" value="Szukaj" /> </form> <?php while($row=mysql_fetch_array($sql)) { $title = $row['title']; echo '<div>'.$title.'</div>'; } ?> </body> </html> |
Popularity: unranked
