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.