![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 1 Dołączył: 9.09.2011 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Niestety napotkałem problem z którym nie mogę sobie poradzić.
Tablica zbudowana jest w poniższy sposób. Przechowuje ona elementy znalezione w bazie MySQL, pasujące do podanych przez użytkownika słów. Każde podane słowo jest wyszukiwane osobno, podany tekst nie jest traktowany jako fraza.
Chcę jednak uniknąć powtórzeń. Można by łatwo uniknąć tego wykonując na tablicy array_unique(), ale jak zapewne ktoś się domyślił relevance przechowuje liczbę pasujących wyszukiwanych słów. Przy ich pomocy będzie można odpowiednio wyświetlić wyniki. Przechodzimy do sedna: muszę wyszukać w takiej dwuwymiarowej tablicy czy wpisano już taki artykuł. Jeśli tak revelance+=1. Jeśli nie dodajemy do tablicy.
Nie udało mi się wykorzystać array_search, prawdę mówiąc nie jestem nawet pewien czy ta funkcja działa dla dwuwymiarowej tablicy. Jestem otwarty na inne rozwiązania całego procesu wyszukiwania. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
ps. a nie lepiej zrobić to po stronie mysql?? może pokaż zapytanie Ten post edytował CuteOne 22.10.2011, 14:06:38 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 19 Dołączył: 13.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze zrozumiałem twoje pytanie to lepiej będzie zrobić tak jak kolega wyżej wspomniał, za pomocą mysql.
Zapytanie:
To zapytanie zwróci Ci id artykulu, header i liczbe ile tych artykulow pokazalo sie. -------------------- www.maxcode.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 1 Dołączył: 9.09.2011 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Udało się, ale teraz stoję przed problemem posortowania tabeli malejąco wg relevance. Muszę ponownie prosić o pomoc, bo chyba źle rozumiem działanie funkcji array_multisort() - jakbym jej nie formułował nie zmienia się absolutnie nic.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 19 Dołączył: 13.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kurcze, przynajmniej napisałbyś jak to zrobiles? za pomoca zapytania? Czy męczyłeś sie tablicami?
Jeśli za pomoca zapytania to mozesz zrobic:
i odrazu masz posortowane, cud, miód i orzeszki. Jeśli wybrałeś drogę trudniejsza, czyli bawisz sie tablicami to szukaj w google: http://webhosting.pl/W.jaki.sposob.posorto...a.tablice.w.PHP http://forum.php.pl/lofiversion/index.php/t20799.html a najlepiej w manualu: http://php.net/manual/en/function.array-multisort.php -------------------- www.maxcode.pl
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 1 Dołączył: 9.09.2011 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zanim zadałem pytanie przeczytałem w necie na ten temat (w tym to co podałeś) i nic. Dziwi mnie to bo prawdopodobnie jest to banalne.
Co do rozwiązania to wykonuję jedno zapytanie które szuka wszystkich słów, a potem w PHP obliczam trafność dla danego artykułu. Po prostu pomimo przeczytania manuala i masy stron internetowych nie mogę posortować tablicy z wynikami po relevancy. Wygląda ona tak jak podałem w pierwszym poście. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 19 Dołączył: 13.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
wynik:
Ten post edytował Dominis 22.10.2011, 20:12:31 -------------------- www.maxcode.pl
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 28 Pomógł: 1 Dołączył: 9.09.2011 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, wygląda na to że popełniałem błąd w tablicy pomocniczej, więc funkcja dostawała po prostu błędne parametry. Dziękuję wszystkim za odpowiedzi.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:24 |