![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jestem początkujacy w PHP+MySQL (szczególnie w tym drugim), wiec prosze o wyrozumiałość.
Mam w MySQLu prosta tabele article, a w niej: title (text),text (text),tags (varchar[50]). Ze skryptem tworzącym "tag cloud" nie mialem wiekszych problemow, w necie jest mnostwo rozwiazan i mozna je latwo dostosowywac do swoich potrzeb. U mnie wyglada to tak:
Jednak problem zaczął się gdy chce wyciągnać z MySQLa i wyswietlic wszystkie (czy najlepiej 20 ostatnich) artykuly zawierające dany tag. Wogole nie wiem ja sie za to zabrac, ma ktos jakis pomysl? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat w necie jest mnostwo rozwiazan i mozna je latwo dostosowywac do swoich potrzeb. Trafiłeś na najgorsze rozwiązanie z możliwych (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Rozbij to na 3 tabele: Kod articles +------------+-... | article_id | ... +------------+-... | 1 | ... | 2 | ... | 23 | ... Kod tags +--------+----------+ | tag_id | tag_name | +--------+----------+ | 1 | book | | 2 | comp | | 3 | trees | | 123 | two | Kod articles_tags +--------+------------+ | tag_id | article_id | +--------+------------+ | 1 | 1 | | 1 | 2 | | 1 | 13 | | 2 | 1 | | 2 | 13 | | 32 | 2 | | 32 | 111 | | 34 | 54 | Następnie poczytaj w manualu MySQL'a o łączeniu tabel w zapytaniach. Przykładowe zapytania: 1. Tagi danego artykułu
2. Artykuły w których występuje dany tag
3. 5 najpopularniejszych tagów
Pisane z palca, więc mogą być błędy. Ale ogólny zarys działania chyba przedstawiłem ;] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 4 Dołączył: 28.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Trafiłeś na najgorsze rozwiązanie z możliwych (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Rozbij to na 3 tabele: Kod articles +------------+-... | article_id | ... +------------+-... | 1 | ... | 2 | ... | 23 | ... Kod tags +--------+----------+ | tag_id | tag_name | +--------+----------+ | 1 | book | | 2 | comp | | 3 | trees | | 123 | two | Kod articles_tags +--------+------------+ | tag_id | article_id | +--------+------------+ | 1 | 1 | | 1 | 2 | | 1 | 13 | | 2 | 1 | | 2 | 13 | | 32 | 2 | | 32 | 111 | | 34 | 54 | Następnie poczytaj w manualu MySQL'a o łączeniu tabel w zapytaniach. Przykładowe zapytania: 1. Tagi danego artykułu
2. Artykuły w których występuje dany tag
3. 5 najpopularniejszych tagów
Pisane z palca, więc mogą być błędy. Ale ogólny zarys działania chyba przedstawiłem ;] Tak koncepcja jest jak najbardziej poprawna. Sam taką stworzyłem do serwisu i sprawuje się jak najbardziej OK. Co do zapisu to najpierw rozbijasz ciąg np. "dupa tag2 jasia bla" funkcją explode, i sprawdzasz SELECTEM czy kolejne taki są w tabeli "tags" jeżeli nie to zapisujesz np,. tag "dupa" do tabeli "tags", natomiast jeżeli istnieje dany tag w bazie to wyciągasz jego ID. Jak masz ID tagu to zapisujesz go wraz z ID artykułu do tabeli "articles_tags". I tak zapisujesz każdy tag z osobna. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 09:52 |