Techniki przeszukiwania bazy danych z wykorzystaniem SQL

Autor: Arkadiusz Tobiasz 2 lipca 2010

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>

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]