Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka po tagach i tytułach artykułów
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Chcę napisać wyszukiwarkę, która będzie wyszukiwała mi artykuły po ich tagach oraz tytułach. Użytkownik podaje (na przykłąd) 3 słowa w polu wyszukiwania, a ja chcę mu zwrócić listę artykułów, które pasują (względem tytułu i tagów artykułu) do zapytania. Dodatkowo, artykuły te są podzielone (przydzielone do) na różne działy strony, w ten sposób, że strona ma (załóżmy) 14 działów, i dany artykuł może być przypisany do wybranych 5 z nich.

Tabela publikacji
Kod
id | title | description | content | visibility


Tabela tagów
Kod
publication_id | tag


Tabela przypisania artykułu do działów strony
Kod
publication_id | section_id


Tabela części strony
Kod
id | name


Po podaniu przez użytkownika zapytania filtruje dane, a następnie rozdzielam tak, bym miał każde słowo w osobnym indeksie tablicy.

Jak napisać zapytanie, które zwróci mi artykuły, których tytuł lub tagi pasują do zapytania użytkownika? Dodatkowo muszę pobrać tylko te artykuły, które należą do wybranego wcześniej działu strony (ID działu przechowywane w stałej).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sebek222
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 4
Dołączył: 1.09.2010

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


  1. SELECT p.`title`, p.`content` FROM `PUBLICATION` p JOIN `TAG` t ON p.`id`=t.`publication_id` JOIN `SECTION` s ON s.`publication_id`=p.`id` WHERE s.`section_id`=[id_dzialu] AND (t.tag LIKE '%user_string%' OR p.`title` LIKE '%user_string%' ) LIMIT 100;

, gdzie user_string to dane wpisane przez użytkownika,
PUBLICATION to tabela z artykułami,
TAG to tabela z tagami,
SECTION to tabela z działami.

Ten post edytował sebek222 10.05.2014, 13:48:58
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 22:57