Autor Zpráva
Luky
Profil
Zdravím,
Možná by se to spíše hodilo do kategorie: ,, Jak něco udělat" (přinejhorším to tam dejte)...
Udělal jsem si diskusi a nevím jak udělat reagování na zprávu. Do databáze zapisuji ID zprávy (předmět, text, datum ...). Když dá uživatel reagovat na zprávu, kterou napsal třeba Franta, tak si zapíšu ID zprávy kterou píše a do jiného sloupce, na kterou reaguje (sloupec je při normální zprávě prázdný a tak se zprávy ukazují normálně, když tam něco je, ukáží se jako reagovaná zpráva - jiný styl). Z databáze vypisuji data podle nejnovějších zpráv, a pokud uživatel reaguje na zprávu třetí od začátku, tak se ukáže logicky jako první ne pod zprávou na kterou reagoval. Jak to mám udělat, aby se zpráva ukázala pod ní?
Budu moc rád za každou odpověď.
Kajman_
Profil *
Jedno z řešení se tu odkazovalo před pár dny
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=113720
AM_
Profil
"Hloupé" řešení je jedním dotazem vytáhnout z databáze pouze zprávy, které nereagují na nic, a potom při výpisu pro každý příspěvek poslat nový dotaz a vytáhnout ty, které na něj reagují. Při větším fóru to bude extrémně pomalé a i se blbě vymýšlí stránkování, ale na naprogramování je to narozdíl od ostatních řešení (viz Kajman_em zaslané vlákno) triviální.
Luky
Profil
Díky moc za radu akorát, nechtěl bysi (AM_) to trochu upřesnit? Bude se ta zpráva ukazovat opravdu pod ní? Zatím nevím jak na to...
Kcko
Profil
AM:
To tvoje řešení bych upravil tak, že po vykonaném SQL dotazu bych příspěvky uložil do 2 rozměrného pole a rekurzivně vypsal.
AM_
Profil
[#4] Luky
to, kde a jak přesně zprávu vypíšeš, už je čistě otázka poskládání kódu, co se ve kterou chvíli vypíše. Pokud nejdřív vyechuješ zprávu a potom začneš vypisovat reakce na ní (nejlépe nějakou rekurzivní funkcí - tedy vypíše reakci a zavolá sama sebe, aby vypsala reakce na danou reakci), tak se to také v tomto pořadí vypíše.

[#5] Kcko
jo, to samozřejmě jde :)

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:

0