Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Najpopularniejsze tagi
Moli
post
Post #1





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Mam w bazie tabelę w takiej formie
Kod
ID | tags

w polu tags mam zapisane tagi, oddzielane przecinkiem. Czyli np.
Kod
pies,kot,mysz,pająk

i jeżeli mam np. takie wpisy
Kod
1 | mama,tata,ja,brat
2 | pies,kot,szczur,brat

i chciał bym zrobić z tego tablicę w takim stylu.
Kod
tag = mama
ile = 1
tag = tata
ile = 1
.....
tag = brat
ile = 2

Czyli wyświetlało dany tag tylko raz, a przy nim ilość dodań tego tagu.

Zupełnie nie mam pomysłu jak to rozwiązać, ma ktoś może jakieś rady ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Tibod
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


Piszę bez testowania więc mogę się minimalnie pomylić, ale powinno to wyglądać mniej więcj tak:

Kod
$query='SELECT tags FROM tabela';
$result=mysql_query($query);

while ($row=mysql_fetch_array($result){
    $tags=explode(","; $row[tags]);

    for ($x=0; $x<=sizeof($tags); $x++){
        $tagi[$tags]++;
    }
}

foreach ($tagi as $klucz => wartosc) {
    echo "$klucz => $wartosc <br />";
}


Ten post edytował Tibod 11.05.2007, 15:58:50


--------------------
"There are only 10 types of people in the world: Those who understand binary, and those who don't"
Go to the top of the page
+Quote Post
domis86
post
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


mysle ze powinno byc tak:

Kod
$query='SELECT tags FROM tabela';
$result=mysql_query($query);

while ($row=mysql_fetch_array($result){
    $tags=explode(",", $row['tags']);

    for ($x=0; $x<=sizeof($tags); $x++){
        $tagi[$tags[$x]]++;
    }
}

foreach ($tagi as $klucz => wartosc) {
    echo "$klucz => $wartosc <br />";
}



ale bedzie to wolne, poniewaz musisz pobrac calą zawartość tabeli z mysql

Ten post edytował domis86 11.05.2007, 17:43:21
Go to the top of the page
+Quote Post
nrm
post
Post #4





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


nie wiem co chcesz z tym zrobic ale trzymanie tagow w tabeli z danym rekordem jest "malo" wydajne (delikatnie mowiac).


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Jak pisal normanos: masz zla strukture tabeli. twoj obiekt, powiedzmy Cos, ma wiele Tagow i jeden Tag moze nalezec do wielu Cos'ow, czyli najprostsza relacja wiele do wielu.

Dwie tabele Tagi, Cosie i tabela zlaczeniowa PosiadanieTagow( tag_id, cos_id) i jednym zapytaniem SQL wyciagniesz ilosc kazdego z tagow.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Moli
post
Post #6





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Chodzi o to żeby każdy tag miał oddzielny wpis w tabeli tagi czy o to żeby na tagi była osobna tabela,ale tagi oddzielane przecinkami ?
Go to the top of the page
+Quote Post
domis86
post
Post #7





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


po pierwsze:
dowiedz sie co to relacja "wiele do wielu" i jak sie ją implementuje
smile.gif
Go to the top of the page
+Quote Post

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: 20.08.2025 - 11:30