[PHP][MYSQL] Tag Cloud, Jak zrobic zapytanie z 4 kolumn, aby sumowało w "chmurce" |
[PHP][MYSQL] Tag Cloud, Jak zrobic zapytanie z 4 kolumn, aby sumowało w "chmurce" |
16.12.2008, 22:20:58
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
Potrzebował bym pomocy w zapytniu SQL. Zrobiłem Tag Cloud (z tutka: http://prism-perfect.net/archive/php-tag-cloud-tutorial/) i wszystko ładnie śmiga, ale tylko umiem zrobic to dla jednej kolumny, a mianowicie:
a na stronce mam możliwośc wpisania 4 tagów, są kolumny Tag1, Tag2, Tag3, Tag4, no i wiadomo, jak to działa, chodzi mi o to jak połączyc wyniki z tych 4 kolumn?? Wymyśliłem coś takiego:
Ale to mi powtarza i np w jednej "chmurce" mam 3 razy to samo słowo:( Pomógł by ktoś z rozwiązaniu tego?? Z gory dzięki!! P.S. Co myślicie o tym rozwiązaniu Tag Cloud co dałem link do tego tutka? Jest godny wykorzytania, czy polecacie coś innego? |
|
|
16.12.2008, 22:24:27
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
Musisz uzyc albo In() z selectem w srodku alb Left Join z relacjami miedzy kolumnami tak mi wydaje linku nie ogladalem
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
16.12.2008, 23:01:46
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
A dałby ktoś jakąś konkretniejszą odpowiedz? Bo przyznam sie bez bicia, że nie wiem jak to zrobic
|
|
|
16.12.2008, 23:05:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
http://mynthon.net/articles/inne/sql_uwagi/
http://pornel.net/sql http://www.sql.info.pl/szkolenia/oracle-sq...t-where-in.html Pokombinuj. -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
17.12.2008, 12:58:39
Post
#5
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Może tak:
Nie zastanawiałem się szczególnie nad optymalnością, ale powinno działać. Sprawdź też czy MySQL przyjmie UNION ALL (nie pamiętam już jak to jest w tych MySQL'ach). Słówko ALL gwarantuje, że zapytanie nie wyrzuci duplikatów. Jeśli UNION ALL nie przejdzie to napisz tak:
-------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
17.12.2008, 13:48:39
Post
#6
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
masz źle zaprojektowaną bazę. po co są osobne kolumny na tagi?!?
-------------------- |
|
|
17.12.2008, 15:50:55
Post
#7
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
normanos dzieki za odpowiedź, a jak mam zaprojektowac?? Bo najlepszym rozwiązaniem bylo by wpisywanie TAG-ow oddzielonych spacją, ale nie umiem zrobic takiego zapytania(czy czegos innego) aby rozróznial poszczegolne słowa. A Ty co byś proponował Jestem otwarty na propozycje
|
|
|
17.12.2008, 17:19:23
Post
#8
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
to już było wałkowane na tym forum dziesiątki razy.
klasyczne wiele do wielu, 3 tabele: 1: jakies elementy, 2: tagi, 3:relacja tagi_2_elementy jedno zapytanie wyciagnie wszystko. -------------------- |
|
|
18.12.2008, 12:06:36
Post
#9
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
Znowu dzieki normanos, ale niestety nie mogę znaleź nic konkretnego na tym forum, jest parę tematów o Tag Cloud, ale nie rozumiem w jaki sposób mam rozdzielić poszczególne słowa? Bo jeśli ktoś wpisze w jednym tagu: słow1 słowo2 słowo3, to jak mam zrobic żeby słowo2 powiązać z z danym artykułem? Wszystkie słow to wiem jak powiązać, ale poszczególne jedno słowo to nie
|
|
|
18.12.2008, 14:59:19
Post
#10
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
1. string "tag1, tag2, tag3"
2. stringa http://pl.php.net/manual/pl/function.explode.php do tablicy 3. tablice INSERT do odpowiednich tabel -------------------- |
|
|
25.12.2008, 22:17:27
Post
#11
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
Dzięki normanos zrobiłem tak jak napisałeś, zrobiłem explode() i wszystko łądnie pięknie, ale jest jedna rzecz. Nie umiem zapisac tej ostatniej tabeli 3:relacja tagi_2_elementy. Link zapisze, wszsytkie taki po kolei też, ale jak zapisac relacje jeśli id jest nadawany automatycznie podczas dodawania linku(dla TAGu też jest automatycznie) do bazy.
Tag Link 1 5 2 5 3 5 1 9 2 9 Przyznam sie ze nawet niemam pomysłu w jaki sposób umieścic tam te relacje Naprowadzi mnie ktoś Z góry dzieki Ten post edytował palixmp 25.12.2008, 22:19:38 |
|
|
26.12.2008, 12:53:46
Post
#12
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
-------------------- |
|
|
28.12.2008, 23:13:41
Post
#13
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 19.07.2006 Ostrzeżenie: (0%) |
Mam pytanie, w jaki sposób z tych wszystkich tabel, wyświetlic linki według jednego TAGA?? Np:
w pierwszym linku sa taki a, b,c w drugim a, c, d w trzecim b,d,e Chce wyświetlic linki które zawierają w sobie tag A, czyli powinien wyświetlic pierwszy i drugi link, ale jak to zrobic:( Stworzyłem coś takiego:
Ale niestety coś jest nie tak, w ogole wyświetla jakieś bzdury. Pomoże ktoś w napisaniu tego zapytania?? Z gory dzieki . Ten post edytował palixmp 28.12.2008, 23:12:43 |
|
|
29.12.2008, 00:16:37
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
-------------------- |
|
|
29.12.2008, 10:21:57
Post
#15
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
LIKE nie ruszaj to bez sensu.
Musisz połączyć 3 tabele, a w twoim zapytaniu widać 2. Np. coś takiego (pisane z palca, niekoniecznie musi działać, ma pokazać schemat)
to samo można zapisać LEFT JOINami. Ten post edytował normanos 29.12.2008, 10:23:24 -------------------- |
|
|
29.12.2008, 18:30:42
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Założyłem że kolega ma pole w postaci 'tag1,tag2,tag3....' :] chyba coś źle wywnioskowałem~~
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 03:58 |