![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuje napisać prostą wyszukiwarkę. W tabeli 'content' mam pole 'slowa_kluczowe' w 'slowa_kluczowe' wpisane jest: slowo1;slowo2;slowo3; Teraz...użytkownik wpisuje sobie do wyszukiwarki np. 'slowo1' i chce znaleźć rekord który ma to w słowach kluczowych. Da radę to załatwić? Czy muszę się posłużyć gotową wyszukiwarką? Jeśli gotową to proszę o polecenie jakiejś naprawdę prostej bo nie tylko ja z niej będe miał ew. korzystać |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Moze latwiej by bylo zrobic slowa kluczowe wpisywane:
;slowo1;slowo2;slowo3; (na koncu i na poczatku zeby byl srednik) i potem w zapytaniu przy WHERE uzywac LIKE '%;slowo kluczowe;%' Ten post edytował franki01 30.04.2007, 17:05:35 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli mysql: Full Text search albo po prostu Limit
Inny sposób to modyfikacja struktury bazy danych tabela z content: id | content itd.... tabela z keyword: id | keyword tabela content_has_keyword idContent | idKeyword do tabeli keyword zapisujesz jedno sowo kluczowe z małej litery do tabeli content_has_keyword wstawiasz rekordy np dla content.id = 5 5 | 6 5 | 8 5 | 9 wtedy wiersz z tabeli content i identyfikatorze id 5 zawiera trzy słowa kluczowe o identyfikatorach 6, 8, 9, których nazwy znajdują się w tabeli keyword. Następnie w zapytaniu łączysz te 3 tabele i w klauzuli WHERE keyword.keyword = 'szukane słowo kluczowe': -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 0 Dołączył: 27.03.2007 Skąd: Osiek almost City ;-D Ostrzeżenie: (0%) ![]() ![]() |
Ew. oprócz fulltext masz jeszcze REGEXP
![]() Kod SELECT * FROM table WHERE column REGEXP 'slowo_kluczowe' I żadnej osobnej tabeli nie trzeba robić ![]() //oczywiście to sposób dla tagów - 'tag1;wakacje;morze' etc. ![]() Ten post edytował pbnan 30.04.2007, 17:39:13 -------------------- "Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki. ;-) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem jak pbnan doradził
I jes PRAWIE ok. Otóż t wyglada tak: Kod $zapytanie = "SELECT * FROM content WHERE slowa_kluczowe REGEXP '$fraza'"; $wynik = mysql_query($zapytanie); $ilosc = mysql_num_rows($wynik); echo $ilosc; $it = mysql_fetch_array($wynik); echo $it['con_id']."<br />"; Niestety nie zwraca żadnego wyniku ani błędu. Kiedy daje echo $zapytanie i wrzucam to co wywala przez przeglądarke do myadmin`a to działa idealnie. Czemu tu nie działa? mysql_num_rows() zwraca 0 tak samo jak mysql_errno() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:41 |