Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
gosciu99
Jak napisać wyszukiwarkę zawartości, wyszukującą zawartość kilku tabel



Czyli tak użytkownik wpisuje jakieś hasło skrypt wyszukuje zawartość bazy danych jak znalazł jakiś rekord to sprawdza id rekordu wyświetla tytuł poprzedzony przedrostkiem np. [news] dla newsów po przedrostku tytuł jako link do www.strona.com/news.php?id=x gdzie x to wcześniej sprawdzony id rekordu.

Jak takie coś napisać w php/mysql?
Vertical
Proponowałbym w tabeli stworzyć oddzielny rekord 'typ' i w nim określać czy jest to news czy coś innego, a następnie napisać skrypt:
  1. <?php
  2. $db = mysql_connect(&#092;"host\", \"user\", \"haslo\");
  3. mysql_select_db(&#092;"baza\", $db);
  4. $result = mysql_query(&#092;"SELECT * FROM tabela1, tabela2... WHERE tabela1.kolumna1, tabela2.kolumna2.
    .
  5.  LIKE '%zmienna%');
  6. while ( $row = mysql_fetch_array ( $result ) )
  7. {
  8. printf(&#092;"<a href = /'http://strona.pl?id=%s/'>[%s]%s</a>\", $row[id], $row['typ'], $row['tytul']);
  9. }
  10. ?>

Skrypt będzie wyświetlał typ tematu oraz jego tytuł w zależnaści od zmiennej podanej w adresie i tworzył linka w zależności od id podanego w bazie
gosciu99
I to jest pewnie plik z wynikami wyszukiwania a jak zrobić formularz do wpisania tego co szukam?
stoprocent
Boze lenistwo ludzi top mnie czas przeraza exclamation.gif! mad.gif
W zapyatniu powyzej masz wpisane cos takiego jak %zmienna% i tam podajesz swoja zmienna np.
  1. <?php
  2. $result = mysql_query(&#092;"SELECT * FROM tabela1, tabela2... WHERE tabela1.kolumna1, tabela2.kolumna2.
    .
  3.  LIKE '%\".$_POST['szukaj'].\"%' \");
  4. ?>

Cala filozofia robisz sobie standartowy forumlaz z odwolaniem do tej strony w ktrej to zawrzesz i tyle , ale ze ci sie nie chcialoposzukac .... Bo po co.
patigo
A co będzie gdy, dane pole w tabeli będzie powiedzmy tekstem składającym się ze 100 słów? Czy wówczas też bedzie działać??
reemii
Może przeglądnij sobie jakiś tutorial dotyczący SQL'a. Jak masz LIKE to wynik wyszukiwania zwraca ci te rekordy gdzie występuje podany ciąg znaków, nie ważne czy jest tam jedno, 10, 100 czy 10000 słów.
Wieviór
Patigo, jak chcesz by ludzie nie wyszukiwali dużych ilości to zrób po prostu Label(input) z ograniczeniem do powiedzmy 25 znaków, albo jak jesteś bardzo wymagający to zrób sobie skrypt, który policzy Ci ile razy spacja występuje w danej wartości i dodaj jeden, wyjdzie Ci liczba słów tongue.gif
Coyote
hehe ludzie to leniuchy... wystarczy troche poszukac a nie od razu topic zakladac...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.