![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Witam,
Chciałbym zrobić system dodawania tagów, etykiet, kategori itp. itd. Pierwsza sprawa, to aby po wyświetleniu otagowanego wpisu, dało się wylistować wszystkie jego tagi. Druga sprawa, to aby dało się wyszukiwać wpisy po dowolnej ilości tagów (czyli np. "wyświetl wpisy posiadające tag "baba" oraz "huhu") Początkowo chciałem do tego użyć flag bitowych http://forum.php.pl/index.php?showtopic=53...rt=#entry291048 Ale mają one swoje wady: Ogranicza mnie to do 64 tagów (w teorii, w praktyce jest to znacznie mniej, jeśli będę chciał dodać do wpisu więcej niż 1 tag) Listowanie polegałoby albo na: ->Sprawdzaniu każdego tagu, czy pasuje do flagi bitowej na wpisie (pętla) lub ->Stworzeniu dodatkowego pola w wpisie z relacją wpis.id <-> tagi.wpisId Oczywiście 64 to bardzo mało jak na tagi, czy istnieje jakiś inny sposób? Może jakoś da sie to zrobić na np. tabelce w stylu idWpisu | idTagu I jakieś super magiczne zapytanie do tego? Chodzi mi tutaj o rozwiązanie z w miarę rozsądną wydajnością. ps. Coś innego niż csv w blobie Pozdrawiam, Łukasz. Ten post edytował paziek 10.12.2008, 14:25:54 |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Zrobić tablice słownikową ze słowami kluczowymi i dodatkową tablice która będzie łączyć produkt ze słowami kluczowymi.
czyli defacto to co napisales: idWpisu | idTagu Cytat I jakieś super magiczne zapytanie do tego Wystarczy zwykle, nie wiem po co tu magia.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Zrobić tablice słownikową ze słowami kluczowymi i dodatkową tablice która będzie łączyć produkt ze słowami kluczowymi. czyli defacto to co napisales: idWpisu | idTagu Wystarczy zwykle, nie wiem po co tu magia. Może tak, ale mi chyba mózg się dzisiaj wyłączył.. No wiec, mam tabelkę wpisy id | nazwa | cośtam ---------------------------- 1 | wpisJakiś | blablabla 2 | innyWpis | sialalala oraz wpisytagi wpisid | tagid ---------------------------- 1 | 1 1 | 2 1 | 4 no i tagi tagid | nazwa ---------------------------- 1 | bah 2 | mah 3 | ciah 4 | lala 5 | buh bah Zapytanie:
Już nawet po nazwach szukać nie będę, tylko ID tagów.. to oczywiście nie działa. Jedynie z jednym tagiem naraz. Co mam zrobić, aby załapało więcej tagów? jakiś GROUP BY? |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Jeśli dobrze rozumiem, to można przetłumaczyć na:
A ja potrzebuję
|
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Super, to rozwiązuje częsciowo problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Tzn. mogę już szukać wpisów, które zawierają tag1 oraz tag2 Ale teraz chciałbym móc szukać wpisów które: zawierają tag1, tag2 oraz NIE zawierają tagu3 Próbowałem czarować z tym co napisał w tamtym temacie ucho, ale mając 4 różne tagi, dając do takiego zapytania tagid = 1 AND tagid = 2 AND tagid != 3 zwraca mi 3 wyniki (powinno 0). Byłaby to z pewnościa użyteczna funkcja, ale i bez tego jestem zadowolony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował paziek 10.12.2008, 15:58:32 |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 01:03 |