Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Podobne tytuły
glacier
post
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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Wykrywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Zacznij od Like %%

http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
Go to the top of the page
+Quote Post
basstone
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

Ostrzeżenie: (0%)
-----


  1. $tytul_artykulu = "blebleble";
  2.  
  3. $zapytanie = "SELECT * FROM `artykuly` WHERE `tytul` LIKE '%$tytul_artykulu%'";
  4. $idzapytania = mysql_query($zapytanie);
  5.  
  6. while($wynik = mysql_fetch_row($idzapytania)) {
  7. // wyświetlasz to co chcesz :)
  8. }
Go to the top of the page
+Quote Post
Wykrywacz
post
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.
Go to the top of the page
+Quote Post
glacier
post
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.
Go to the top of the page
+Quote Post
Ilware
post
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
Go to the top of the page
+Quote Post
artuross
post
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ć.
Go to the top of the page
+Quote Post
glacier
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Cytat(artuross @ 11.01.2012, 19:28:11 ) *
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?
Go to the top of the page
+Quote Post
Ilware
post
Post #9





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. explode( ".",$String );
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:36