Autor Zpráva
lolek57
Profil *
Zdravím, potřeboval bych poradit jak bych měl vyřešit tagy u články a následný
výčet souvisejících články za pomocí tagů.

Děkuji
Str4wberry
Profil
Viz vlákno Související data.
lolek57
Profil *
Nj ale tam se to nedoresilo :(
Leo
Profil
"Nj ale tam se to nedoresilo :("

Jak to, ze ne:

"Obecně to asi bude vazba M:N (tj. jeden článek může mít více tagů a současně stejný tag může mít více článků), takže
- tabulka článků
- tabulka tagů
- vazební tabulka id článku - id tagu"

Leo
lolek57
Profil *
Díky moc!
lolek57
Profil *
Ja prostě teď nevím jak mám udělat ten výpis souvislých článku?
Přemejslim nad tim uz hodit a nic...
Leo
Profil
"Přemejslim nad tim uz hodit a nic..."

SELECTem z patricnych tabulek? :-) Leo
lolek57
Profil *
news
news_tags
tags

jj selectem ale jak to přesně napsat? :(
bukaj
Profil
lolek57
jj selectem ale jak to přesně napsat? :(
Řekněme, že potřebuješ zjistit podobné články k jednomu s id 5, co má id tagů 1, 2 a 3:
SELECT 
    id_new
FROM news_tags 
WHERE 
    id_tag IN (1, 2, 3)  -- hledáme podobné články; článek je podobný tehdy, má-li
                         -- jeden a více společných tagů
    AND id_new != 5      -- vyloučíme článek, k němuž podobné hledáme
GROUP BY id_new 
ORDER BY COUNT(id_tag) DESC -- seřadíme podle počtu společných tagů

Tady vlastně potřebuješ dva dotazy -- první, kterým zjistíš, jaké má článek tagy (ten tu napsaný není, protože je jednoduchý), a druhý je tenhle. Jde to smrsknout i do jednoho dotazu celé, kdy potřebuješ znát jenom id článku, buď pomocí poddotazu, nebo několika JOINů. Ale na touž určitš přijdeš sám, pokud to bude potřeba.
lolek57
Profil *
bukaj ty jsi zlaty!! diky moc
lolek57
Profil *
bukaj: mohu se ještě zeptat kam mam vložit ty tagy clanku s id 5? Kdyz jsem to vyzkousel tak mi to napsalo: Nespr-B�vn� pou�it� funkce group :(.
bukaj
Profil
lolek57
mohu se ještě zeptat kam mam vložit ty tagy clanku s id 5?
Pokud článku přiřazuješ nějaké tagy, vkládáš řádky do tabulky news_tags. Do jednoho sloupce id článku, do druhého id tagu (jestli to máš udělané normálně). Nebo jsem nepochopil, oč ti jde.
lolek57
Profil *
Ano presne takto to mám udělané. Nevím proc mi to hlásí tu chybu :(

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: