Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Najpopularniejsze tagi
Forum PHP.pl > Forum > PHP
Moli
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 ?
Tibod
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 />";
}
domis86
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
nrm
nie wiem co chcesz z tym zrobic ale trzymanie tagow w tabeli z danym rekordem jest "malo" wydajne (delikatnie mowiac).
dr_bonzo
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.
Moli
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 ?
domis86
po pierwsze:
dowiedz sie co to relacja "wiele do wielu" i jak sie ją implementuje
smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.