PHP - gotowe skrypty - System Newsów Oparty o bazę danych MySQL - wyszukiwanie

DZIAŁANIE: Screen ekranu z wyszukiwania :
 

Kod:

Ewentualne Objaśnienia:

W poprzedniej lekcji napisałem System Newsów - teraz mały dodatek do niego - mianowicie wyszukiwarka newsów. W tym celu zmodyfikujemy tylko 1 plik - nazywał się on w poprzednim ćwiczeniu '123show_news_all.php' - czyli jak pamiętamy służył nam do wyświetlenia wszystkich newsów bądź jednego konkretnego określonego przez nas.
Tak więc dodamy do tego właśnie pliku formularz - czyli wyszukiwarkę newsów. Zrealizujemy to troszkę inaczej niż pokazywałem kiedyś w jednym z przykładów. Wyszukiwaniem obarczymy bazę danych, wykorzystamy do tego klauzulę WHERE - konkretnie warunek LIKE. Warunek ten porównuje wyrażenia po prawej i lewej stronie i jest on prawdziwy gdy są one zgodne. Istnieje możliwość użycia tzw. "jockerów" - znaku procentu (modulo) zastępującego dowolną liczbę znaków, lub też podkreślenia zastępującego dokładnie 1 znak - i w tym przykładzie właśnie tych 'jockerów' użyjemy.

No i popatrzmy na nasz plik do wyświetlania newsów - to naprawdę proste - jeżeli wybraliśmy jakiś news do wyświetlenia - wszystko dzieje się tak samo jak wcześniej, czyli zostaje on wyświetlony - mechanizm działania jest taki sam jak w poprzednim przykładzie.

Zmiany pojawiają się w momencie kiedy nie wybieraliśmy żadnego konkretnego newsa do wyświetlenia - wtedy wyświetlane są wszystkie newsy oraz wyszukiwarka, gdzie podajemy jakieś słowo względem, którego chcemy wyszukać newsa. Jak widać pojawia się wspomniane LIKE w zapytaniu SELECT - jak widać w zapisie sprawdzamy czy wpisane przez nasz słowo nie znajduje się albo w polu tytul albo tresc_krotka albo tresc albo osoba - to wszystko jest uporządkowane wg daty - rosnąco. Konstrukcja przedstawione pozwala nam na wyszukanie właśnie w dowolnych miejscach w naszych polach danego słowa. Wielkie i małe litery nie są tutaj rozróżniane, uwzględnianie.

Warunek LIKE klauzuli WHERE jest jednym z najczęściej używanych w przypadku wykorzystania baz danych podczas wyszukiwania.

P.S - w kodzie jest mały błąd - w odnośniku do pliku - do wszystkich newsów dwa razy jest rozszerzenie *.php w nazwie pliku - to tak na marginesie - po prostu się pomyliłem.