Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z wyświetlaniem PODOBNYCH tytułów
roobik
post
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam.
Dawno nie pisałem, bo piszę, gdy mam naprawdę "po górkę".

OK. Do rzeczy.
Mam w tabeli tytuły książek. Wszystko ładnie-pięknie, ale wraz ze wzrostem ilości książek (a właściwie ich opisów), zauważyłem, że niektóre z nich mają w sobie (tzn w tytule) te same wyrazy (frazy).
No i teraz tak: Pomyślałem sobie, że "fajnie by było, gdyby" pod daną książką było coś w stylu "Zobacz również", gdzie pojawiałyby się tytuły PODOBNE do tej aktualnie oglądanej.

No i dobra. Zamysł jest, więc do roboty (IMG:style_emoticons/default/smile.gif)
  1. $zap = "SELECT * FROM ksiazka WHERE status=0 AND title='$title' AND id NOT LIKE $id ORDER BY date ASC";

No i mam oczywiście książki inne, niż aktualnie przeglądana, ale kurcze z tytułem jest problem.

Załóżmy dwa tytuły książek:
"Między ustami a brzegiem pucharu"
"Między Majdanem a Smoleńskiem"

W obu tytułach pojawia się "Między", więc powinno wyświetlać.

Problem jest jeszcze inny. Bo gdy już dojdę (z Waszą pomocą) do poprawnego wyświetlania, to pojawi się kolejny problem. Otóż w wielu tytułach mamy np. łączniki lub zaimki, np:
"i", "a", "lub", "oraz", "to", "do", "nad" ...
No przyznacie, że bez sensu jest, by wyświetlało mi tytuły tylko dlatego, że w innym jest "do".
Pomyślałem, że stworzę tablicę z tymi łącznikami i zaimkami i spróbuję wyświetlić na nowo.
  1. $niechciane_wyrazy = array ("a"=>"i", "b"=>"i", "c"=>"lub", "d"=>"oraz");

I tu pojawiła się górka. Jak to połączyć. Próbuję walczyć z tym kolejny dzionek i za nic w świecie nie mogę tego rozwalić.

Krótko mówiąc zapytanie powinno brzmieć:
pokaż wszystkie tytuły zawierające w TITLE jakikolwiek podobny wyraz (w dowolnym miejscu) oprócz "$niechciane_wyrazy" i posortuj je jakoś tam (IMG:style_emoticons/default/wink.gif)

No i kolejny problem, jaki się nasuwa: odmiana
Pozostanę celowo przy tytule "Między Majdanem a Smoleńskiem". Mam w bazie również książkę pt "Ostatni lot. Przyczyny katastrofy smoleńskiej. Śledztwo dziennikarskie".
No i teraz dodatkowo jak to wszystko do kupy połączyć, by pod książką "Między Majaden a Smoleńskiem" pojawił się tytuł "Ostatni lot...."?

Bardzo Was proszę o pomoc. Sam nie dam rady...

Ten post edytował roobik 13.03.2014, 02:01:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
YourFrog
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 22
Dołączył: 10.01.2014

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


Dodam tylko od siebie że zwracanie książek podobnych tylko po tytułach to zły pomysł. Książki powinny pasować do siebie przede wszystkim tematyka ewentualnie autorem. Według mnie powinieneś sobie stworzyć tabelę pomocnicza i tam pakować relacje książek miedzy sobą da ci to dużo większa elastyczność w zwracanych wynikach.


A czyścić tytuły możesz np tak:
  1. <?php
  2.  
  3. $arr = array(' i', ' lub', ' oraz');
  4. $title = 'Mój przyjaciel miś i jego 9 córeczek';
  5.  
  6.  
  7. $title = str_replace($arr, '', $title);
  8.  
  9.  
  10. var_dump($title);


Ten post edytował YourFrog 13.03.2014, 08:41:18
Go to the top of the page
+Quote Post

Posty w temacie
- roobik   [PHP] Problem z wyświetlaniem PODOBNYCH tytułów   13.03.2014, 02:00:31
- - mmmmmmm   W PHP rozbij sobie tytuł na wyrazy, wywal niechcia...   13.03.2014, 08:28:22
- - YourFrog   Dodam tylko od siebie że zwracanie książek podobny...   13.03.2014, 08:39:38
- - roobik   Robię coś źle, ale nie wiem co Dla testów zrobił...   13.03.2014, 18:11:48
- - karakara   Generalne chyba robisz coś takiego jak tutaj http...   13.03.2014, 19:37:45
- - Turson   Podstawowa sprawa, pod tym [PHP] pobierz, plainte...   13.03.2014, 19:42:46
- - roobik   Dałem oczywiście [PHP] pobierz, plaintext echo $ti...   13.03.2014, 19:54:42
- - karakara   dobra skoro zignorowałeś jeden moj post moze ten p...   13.03.2014, 20:08:37
- - roobik   karakara - przepraszam, faktycznie wyglądało to t...   13.03.2014, 20:31:30
- - Turson   [PHP] pobierz, plaintext $tytul = "Dzika rzek...   13.03.2014, 20:37:00
- - karakara   To generalnie nie są proste zagadanienia dla kogoś...   13.03.2014, 20:39:00
- - roobik   [PHP] pobierz, plaintext $tytuly = explode( ...   13.03.2014, 20:46:51
- - karakara   np. [PHP] pobierz, plaintext substr('pojechałe...   13.03.2014, 20:55:16
- - roobik   OK. Zrobiłem, jak piszesz: [PHP] pobierz, plaintex...   13.03.2014, 21:15:43
- - karakara   Dzielisz tytuł po kropce ? $slowa = explode(...   13.03.2014, 21:20:53
- - Turson   Ja bym poszedł w tę stronę [PHP] pobierz, plaintex...   13.03.2014, 21:23:12
- - roobik   CytatDzielisz tytuł po kropce ? OK. Zmieniłem na s...   13.03.2014, 21:29:59
- - karakara   Kod Tursona daje taki sam wynik jak mój (poprawion...   13.03.2014, 21:39:31
- - roobik   a nie powinno być tak? [PHP] pobierz, plaintext $z...   13.03.2014, 21:47:19
- - karakara   Robią bo do '%%' łapie się wszystko. Czyli...   13.03.2014, 21:50:48
- - roobik   Kurcze. Już wiem o co chodzi, ale nie wiem, czy bę...   13.03.2014, 22:47:29
- - karakara   generalnie to nie wiem o co chodzi z tym że tytuł ...   14.03.2014, 12:49:03
|- - lukasz_os   Przed włożeniem tyułu do tablicy użyj str_replace ...   14.03.2014, 18:07:22
- - emillo91   Poczytaj trochę o wyrażeniach regularnych gdzie mo...   14.03.2014, 13:25:10


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

 



RSS Aktualny czas: 15.10.2025 - 17:30