Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szukarka mysql
Forum PHP.pl > Forum > PHP
sajborg
Witam zastanawiam sie jak napisac skrypcik szukajacy w sql odpowiednich fraz wpisanych jedno słowo to nie jest problem ale gdy ktos wpisze "ala ma kota" albo "ala+kot" to co wtedy nie wyszuka zastanawiam sie jak to zrobic jedyne co teraz mi przychodzi do dwa przypadki dla spacji i dla + i w kazdym przypadku explode całego wyrazenia na spacje albo + i wtedy dodawanie do where LIKE 'ala' OR LIKE 'ma' OR LIKE 'kota' ale jak ktos wpisze ala ma+kota co to wtedy sie pogubi sad.gif ma ktos jakis pomysł questionmark.gif Albo moze wpadlem na pomysl zamienic wszystki + na spacje albo odwrotnie i przeszukiwac tylko pod wzgledem spacji tak jak mowilem rozbic i dodawac LIKE wo WHERE
Lechu
Pomysł z OR moim zdaniem nienajlepszy. Jeśli trzeba wyszukać całą frazę, tzn słowa sąsiadujące ze sobą, to u mnie like wyszukuje ze spacjami. Jeśli coś w stylu ala+ma, czyli te dwa słowa mają być, jednak niekoniecznie obok siebie, to wtedy skorzystaj z AND. Jeśli będziesz korzystał z OR to zwróci Ci nawet te rekordy w których występuje tylko jedno wpisane słowo, a nie wszystkie.
sajborg
Czyli dobze zrozumialem ze jak sa spacje to mam uzywac AND a jak sa + to OR questionmark.gif
Lechu
Roznica miedzy + a spacja zalezy od tego jak sobie ustalisz zasady wykonywania zapytan w swojej wyszukiwarce. Zawsze wydawalo mi sie ze w wiekszosci wyszukiwarek nie ma miedzy nimi roznicy, wyszukiwane sa strony zawierajace przynajmniej raz kazde z wymienionych slow. W takim wypadku powinienes skorzystac z AND. Jesli natomiast zalezy ci na wyszukiwaniu calej frazy, w wyszukiwarkach zazwyczaj zawarta w " ", to moim zdaniem wystarczy wstawic ta fraze w LIKE bez kombinowania.

Jesli sie myle to prosze mnie poprawic winksmiley.jpg
sajborg
No w sumie masz racje thx za pomoc
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.