Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

11,1 tys

Jedną z najpopularniejszych i niezbędnych funkcji na każdej stronie internetowej jest wyszukiwanie, realizowane za pomocą specjalnego formularza. Funkcjonalność ta umożliwia odwiedzającym szybkie odnalezienie w serwisie treści, które ich interesują.

Dziś chcemy Wam podpowiedzieć jak przeszukiwać serwis za pomocą specjalnego formularza, który przeszuka tabele bazy danych i wyświetli informacje o aktualnych menadżerach serwisu. Dowiesz się jak tworzyć tabele w bazie danych, które będą zawierały informacje o aktualnym personelu.

Opracuj formularze wyszukiwania dla Pomoc w PHP, a także zapoznaj się z SQL (Structured Query Language) - specjalny język do gromadzenia, utrwalania i modyfikowania informacji zawartych w bazach danych. Zanim zaczniesz, zalecamy pobranie plików projektu.

Czego będziesz potrzebować

  • Narzędzie do pracy z bazami danych MySQL.
  • Serwer lokalny lub zdalny z obsługą PHP.
  • Edytor tekstu.
Tworzenie bazy danych

Jeśli nie jesteś całkowicie pewien, czy rozumiesz bazę danych na swoim hostingu, skontaktuj się z hosterem, aby uzyskać odpowiednie instrukcje lub pomoc. Po utworzeniu bazy danych należy ją podłączyć, utworzyć tabelę i wpisać do niej niezbędne dane.

Najpopularniejszym narzędziem do zarządzania MySQL jest PHP My Admin. To narzędzie będzie wystarczające w dzisiejszym tutorialu.

Tworzenie tabeli

Nasza tabela powinna być utworzona w następującym formacie:

Nazwa kolumny Typ danych Długość Null lub Not Null Klucz podstawowy? Automatyczny przyrost
ID WEWN 1 Nie zerowy Tak Tak
Imię Varchar 50 Nie zerowy NIE NIE
Nazwisko Varchar 50 Nie zerowy NIE NIE
E-mail Varchar 50 Nie zerowy NIE NIE
Numer telefonu Varchar 15 Nie zerowy NIE NIE

Tabela bazy danych składa się z kolumn i wierszy, podobnie jak Excel. Pierwsza kolumna pozwala na identyfikację danych po nazwie. Następna jest kolumna Typy danych, która informuje nas o typie danych zawartych w kolumnie. Pole Długość określa maksymalną ilość pamięci (magazynu) dla kolumny tabeli. Używamy zmiennych, które dają większą elastyczność. Innymi słowy, jeśli długość pełnego imienia i nazwiska jest mniejsza niż 50 znaków, wówczas zajęta zostanie tylko część przydzielonego miejsca.

A wśród danych personalnych nie może być puste wartości(null, pusty). Podświetlona pierwsza linia żółty, ponieważ kolumna ID jest naszym kluczem podstawowym. Klucz główny w bazie danych gwarantuje, że każdy rekord jest unikalny. Do tej kolumny również stosowana jest autoinkrementacja, co oznacza, że ​​każdy rekord w naszej bazie zostanie przypisany unikalny numer automatycznie.

Dodawanie przedstawicieli personelu do tabeli

Kiedy już zrozumiesz tabelę, zacznij ją wypełniać danymi. Wystarczy 6 notatek, aby utrwalić procedurę w głowie. Poniżej podam mój własny przykład:

Identyfikator kolumny Imię Nazwisko E-mail Numer telefonu
2 Ryana Lokaj [e-mail chroniony] 417-854-8547
3 Brenta Callahan [e-mail chroniony] 417-854-6587
Rozwój formy

Aby utworzyć formularz wyszukiwania witryny za pośrednictwem Google, otwórz dowolny odpowiedni edytor tekstu. Polecam skorzystać z darmowego PSPada. Możesz użyć dowolnego edytora tekstu, który umożliwia podświetlanie składni. Znacząco ułatwi to proces pisania i debugowania kodu PHP. Tworząc stronę dla formularza wyszukiwania, pamiętaj o zapisaniu jej w formacie .php, w przeciwnym razie kod PHP nie zostanie poprawnie przeanalizowany. Po zapisaniu dokumentu skopiuj do niego następujący znacznik:

Wyszukaj kontakty:

Szczegółowe wyszukiwaniełączność

Można wyszukiwać według imienia lub nazwiska

Jeśli znasz Język HTML, wtedy wszystko powinno być dla Ciebie jasne przynajmniej do znacznika formularza otwierającego. Wewnątrz tego tagu znajduje się najważniejszy element całego kodu - atrybut akcji. W przypadku naszej akcji formularza podaliśmy nazwę naszego pliku, a następnie zastosowaliśmy do niego ciąg zapytania „go”.

Sprawdzenie zgodności z kryterium

Gdy użytkownik wprowadzi imię lub nazwisko, a następnie kliknie przycisk Wyślij, formularz przekazuje dane do siebie i na końcu dodaje ciąg zapytania „go”. W tym momencie sprawdzamy obecność ciągu zapytania go. Jeżeli wynik będzie pozytywny, wyświetlamy wyniki wyszukiwania.

Przed wyświetleniem żądanych wyników należy jeszcze raz sprawdzić: (1) czy formularz został przesłany, (2) czy ciąg zapytania zawiera wartość go, (3) czy zapytanie wyszukiwania wpisane w dolnym lub wielkie litery? Jeśli żadna z kontroli nie da wyniku pozytywnego (true), to nie jesteśmy zobowiązani do wykonania żadnej akcji.

Najpierw dodajmy mały blok kodu wyszukiwania witryny PHP po tagu zamykającym:

Najpierw otwieramy blok kodu PHP ze znacznikiem „”.

Każdy kod PHP znajdujący się w tej parze znaczników zostanie wykonany przez serwer. Następnie sprawdzamy czy formularz został przesłany:

Użyjemy wbudowanej funkcji isset, która zwraca wartość bool, i umieścimy w niej tablicę $_POST. Wyrażenie logiczne w programowaniu pozwala nam uzyskać prawdę lub fałsz.

Dlatego jeśli funkcja zwróci PRAWDA, wówczas formularz został potwierdzony i musimy kontynuować wykonywanie kodu. Jeśli funkcja zwróci false , wówczas wydrukujemy komunikat o błędzie. Zapisz cały wpisany kod w pliku search_submit.php.

Postawiliśmy kolejny warunek wyrażenie logiczne wewnątrz głównej, ale tylko tym razem używamy tablicy $_GET wraz z wartością „go”. Zapisz zmiany w pliku search_go.php.

Teraz musimy się upewnić, że odwiedzający mogą wpisać tylko pierwszą literę ciągu zapytania wielkimi lub tylko małymi literami. Musimy także zapewnić możliwość uwzględnienia kryteriów wyszukiwania wprowadzonych przez odwiedzającego. Najlepszym sposobem sprawdzenia poprawności danych wprowadzanych przez gości jest użycie wyrażenia regularnego:

Wewnątrz naszych dwóch umieściliśmy kolejne warunkowe wyrażenie logiczne. Tym razem korzystamy wyrażenie regularne aby potwierdzić wprowadzone dane. Korzystamy z wbudowanej funkcji preg_match z dwoma parametrami: wyrażeniem regularnym oraz polem formularza, do którego należy zastosować walidację.

W naszym przypadku będzie to pole „Nazwa” (nazwa). Aby pobrać parametry wyszukiwania określone przez odwiedzającego, tworzymy zmienną $name i wiążemy ją z wartością POST z nazwą pola formularza, które będzie używane w zapytaniu SQL. Wdrożyliśmy teraz: (1) dane formularza są przesyłane, (2) ciąg zapytania zawiera wartość go i (3) odwiedzający wprowadził pierwszą literę wielką lub małą. Wszystkie te kontrole mają miejsce przed wprowadzeniem jakichkolwiek zmian w bazie danych. Zapisz wszystkie zmiany.

Połącz, wybierz, zapytaj i zwróć wyniki z tabeli bazy danych

Aby pobrać dane z tabeli należy najpierw połączyć się z serwerem w skrypcie wyszukiwania serwisu. W tym celu używamy następującego kodu:

Tworzymy zmienną $db i wiążemy ją z wbudowaną funkcją MySQL mysql_connect, która przyjmuje trzy parametry: serwer z bazą danych (localhost, jeśli pracujesz lokalnie), login i hasło.

Następnie uruchamiamy wbudowaną funkcję PHP, która wstrzymuje dalsze wykonywanie kodu w przypadku braku połączenia z bazą danych. A informację o błędzie wyświetlamy uruchamiając wbudowaną w MySQL funkcję mysql_error, która zwróci przyczynę błędu. Zapisz plik search_connectdb.php.

Tworzymy zmienną o nazwie mydb i wiążemy ją z wbudowaną funkcją MySQL mysql_select_db, a następnie podajemy nazwę utworzonej wcześniej bazy danych. Następnie odpytujemy tabelę bazy danych za pomocą zapytania SQL ze zmienną nazwy zawierającą parametry wyszukiwania wprowadzone przez odwiedzającego:

Podczas odpytywania tabeli bazy danych tworzymy zmienną $sql i wiążemy ją z ciągiem znaków zawierającym zapytanie SQL. Za pomocą instrukcji SELECT pobieramy wartości z kolumn id oraz kolumn imię i nazwisko z tabeli kontaktów. Następnie używamy klauzuli WHERE wraz z wartościami imienia i nazwiska, aby zawęzić wyszukiwanie.

Razem z operatorem LIKE używamy znaku procentu (%) - znaku specjalnego, który zwraca 0 lub więcej znaków, a także zmiennej nazwy z szukanego ciągu. W rezultacie LIKE (w połączeniu ze znakiem specjalnym ) znajduje dowolną pasującą nazwę w tabeli bazy danych. Cały proces można opisać następująco: „Wybieramy z tabeli kontaktów imię i nazwisko, które odpowiada tym wprowadzonym przez odwiedzającego.” Zapisz plik search_query.php.

Tworzymy zmienną $result i przypisujemy jej wartość funkcji mysql_query(), dodając ją do $query. Teraz nasze zapytanie jest przechowywane w zmiennej wynikowej. Aby wyprowadzić wynik w PHP, tworzymy pętlę, a następnie wyprowadzamy dane na nieuporządkowanej liście:

Najpierw tworzymy pętlę while, w jej wnętrzu tworzymy zmienną o nazwie row i inicjujemy ją wartością zwracaną przez funkcję mysql_fetch_array, która pobiera zmienną wynikową zawierającą nasze zapytanie SQL. Wewnątrz pętla while każdej wartości kolumny przypisujemy wartość zmiennej o tej samej nazwie. Następnie wyprowadzamy wartości z listy nieuporządkowanej.

Ważne jest, aby zwrócić tutaj uwagę na dwa punkty: (1) wewnątrz pętli while nie trzeba przypisywać wartości zmiennym tablicy wierszy, ponieważ wartości można pobrać bezpośrednio z tablicy wierszy; (2) znacznik kotwicy, którego używamy w nazwie naszego pliku wraz z identyfikatorem i kluczem podstawowym. Dzieje się tak dlatego, że wiele elementów wyszukiwania początkowo nic nie pokazuje.

Ponieważ pokazujemy tylko imię i nazwisko, z identyfikatorem na końcu naszego tagu zakotwiczenia, możemy użyć identyfikatora w dodatkowym zapytaniu, które pozwoli nam wyświetlić dodatkowe informacje o personelu. Zapisz plik i przetestuj Formularz PHP wyszukiwanie w witrynie (search_display.php).

Usuwanie zakładek

Wyniki wyświetlane są w postaci nieuporządkowanej listy, ale chodzi o to, że nie potrzebujemy zakładek. Aby się go pozbyć, dodaj następującą regułę CSS na samym początku pliku w głowie:

ul li(typ-stylu listy:brak; )

Szukaj według litery

Aby zaimplementować wyszukiwanie literowe, potrzebujesz tylko kilku dodatkowych linii kodu. Dodajmy tę wygodną funkcjonalność dla odwiedzających. W ten sposób będą mogli odnaleźć przedstawicieli personelu po literach zawartych w imieniu lub nazwisku.

Dodaj następujący wiersz kodu po tagu zamykającym formularza:

| B | K



Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
UDZIAŁ: