![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na stronie mam wyszukiwarke plików.
Po wpisaniu w pole SEARCH dane z bazy są porównywane z wpisanym wzorcem w ten sposób:
No i załóżmy ktoś wpisze: ' boys szalona' to mi nie znajdzie kawałka którego tytuł to: "boys - szalona" lub "boys - jesteś szalona" tylko dokładnie taki ciąg jaki został wpisany. Jak poprawić to zapytanie, żeby wyszukiwarka zwracała bardziej trafne wyniki tzn jak wpisze jakieś słowa to poprostu wystarczy, żeby się one znalazły w tytule i ma zostać zwróćony wynik a nie tylko gdy te słowa występują w identycznym ciągu jak ten który został wpisany ? Mam nadzieje że jest zrozumiałe o co mi chodzi ![]() -------------------- Free mp3 download.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zmień tytuł tematu bo obrażasz LIKE...
Dzielisz fraze na wyrazy i dajesz like na każdym z nich like Kod ... LIKE "%wyraz1%" AND topic LIKE "%wyraz2%"
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale jak to podzielić, przecież nawet nie wiem ile wyrazów ktoś wpisze, może ich być dużo.
-------------------- Free mp3 download.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Alergia na manual??
Kod $fraza=" Szukaj mnie a co mi tam"; // podział $arr=preg_split('/\s+/', trim($fraza)); // usuwanie za krotkich slow $ile=count($arr); for($i=0; $i<$ile; $i++) { if(strlen($arr[$i])<3) unset($arr[$i]); } $arr=array_merge($arr); // resetowanie kluczy jakbys potem nie wiedzial jak przejsc po wszystkich elementach print_r($arr); Masz ładną tablicę słów. Zapytanie sobie sam skleisz -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
Można też w prostszy sposób:
zmień kod na
A jeżeli ma szukać wyników bez względu na kolejność słów, to musisz poczytać o indeksach FULLTEXT oraz składni polecania SQL: ... MATCH ... AGAINST Powodzenia. PS. Zapytanie SQL podzieliłem na 2 linijki bo przy jednej lay forum się rozjeżdża... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Bardziej ciekawy wydaje się być prostszy sposób
![]() Dzięki za pomoc. -------------------- Free mp3 download.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Prostszy nie uwzglednia opcji wpisywania wielu spacji przez uzytkownika np " fraza test " i moze byc kicha.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:09 |