![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam w bazie danych MySQL kilkaset artykułów. Chciałbym pod każdym artykułem umieścić linki do artykułów które mają podobny tytuł do obecnie wyświetlanego. Czy mogę liczyć na jakąś podpowiedź, czego się zaczepić, jakich funkcji użyć, może zapytania w mysql aby takie linki wygenerować? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 726 Pomógł: 20 Dołączył: 8.12.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 6 Dołączył: 20.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 726 Pomógł: 20 Dołączył: 8.12.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak podajesz mu gotowca to przynajmniej wrzuć mu coś co będzie odporne na sqlinjection, bo wrzucanie początkującemu takich kaszalotów tylko sprawi mu problem w przyszłości.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedzi. Oczywiście na początku zająłem się LIKE, ale podając w zapytaniu %tytul_artykułu% otrzymuje w wynikach tylko taki artykuł którego tytuł jest identyczny z obecnie wyświetlanym.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się funkcjami z MySql sounds-like oraz soundex
http://dev.mysql.com/doc/refman/5.0/en/str...unction_soundex http://dev.mysql.com/doc/refman/5.0/en/str...tor_sounds-like |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 9 Dołączył: 30.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Może rozbij tytuł artykułu na części przy spacjach, dzięki temu każde słowo zostanie wyszukane osobno, następnie wyświetl wyżej te tytuły, które zawierały więcej wspólnych słów, np.
$artykul = "Jakiś artykuł o wszystkim i o niczym"; Teraz po rozbiciu otrzymujesz (wielkość liter nie powinna być brana pod uwagę): jakiś, artykuł, o, wszystkim, i, o, niczym. Warto usunąć powtarzające się słowa/znaki, w tym przykładzie występuje akurat 2 razy o, które jest oczywiście nie potrzebne, ponieważ podwoiłoby ilość tych samych wyników nawet jeżeli miałyby tylko jedno o. Kolejnym krokiem byłoby usunięcie pojedynczych znaków, spójnik i raczej nie zwiększa szans na znalezienie podobnego artykułu. Teraz należy wyszukać w bazie danych wszystkie rekordy zawierające jakiś lub artykuł lub wszystkim lub niczym. Należy wyszukać powtarzające się rekordy, następnie zliczyć ich ilość, porównać, usunąć powtarzające się, a następnie wyświetlić. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Może rozbij tytuł artykułu na części przy spacjach, dzięki temu każde słowo zostanie wyszukane osobno, następnie wyświetl wyżej te tytuły, które zawierały więcej wspólnych słów, np. $artykul = "Jakiś artykuł o wszystkim i o niczym"; Teraz po rozbiciu otrzymujesz (wielkość liter nie powinna być brana pod uwagę): jakiś, artykuł, o, wszystkim, i, o, niczym. Warto usunąć powtarzające się słowa/znaki, w tym przykładzie występuje akurat 2 razy o, które jest oczywiście nie potrzebne, ponieważ podwoiłoby ilość tych samych wyników nawet jeżeli miałyby tylko jedno o. Kolejnym krokiem byłoby usunięcie pojedynczych znaków, spójnik i raczej nie zwiększa szans na znalezienie podobnego artykułu. Teraz należy wyszukać w bazie danych wszystkie rekordy zawierające jakiś lub artykuł lub wszystkim lub niczym. Należy wyszukać powtarzające się rekordy, następnie zliczyć ich ilość, porównać, usunąć powtarzające się, a następnie wyświetlić. Wyśmienita podpowiedź. Tylko jeszcze jedno pytanko w tym względzie. Jakaś funkcja, która by mi rozbiła słowa w zdaniach istnieje? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:36 |