Autor | Zpráva | ||
---|---|---|---|
kopi Profil |
#1 · Zasláno: 31. 1. 2016, 13:21:25
Dobrý den,
potřeboval bych poradit s vypisováním vláken v diskuzi. Rád bych, aby vždy nahoře bylo vlákno, ke kterému se váže nejnovější příspěvek. Mám tabulky diskuse_vlakna a diskuse_prispevky diskuse_vlakna: id, tema, id_autor, datum diskuse_prispeky: id, id_tema, id_autor, text, datum dokážu udělat výpis příspěvků sgrupovaných podle témat, ale už mi nejde to, že když někde přidá příspěvek ke staršímu tématu, tak se dané téma zobrazí nahoře s náhledem nejnovějšího příspěvku. Chápu, že se k tomu používá JOIN, ale nějak pořád nechápu tu syntaxi spojování tabulek. Děkuju za každou radu. |
||
Kajman Profil |
#2 · Zasláno: 1. 2. 2016, 08:30:23
Pokud platí, že větší id, znamená větší datum, tak např. takto.
SELECT v.* FROM diskuse_vlakna v JOIN (SELECT id_tema, Max(id) posledni FROM diskuse_prispeky GROUP BY id_tema #ORDER BY posledni DESC #LIMIT 50 ) p ON v.id = p.id_tema ORDER BY p.posledni DESC |
||
kopi Profil |
#3 · Zasláno: 1. 2. 2016, 09:42:59
Kajman:
děkuju. Tohle funguje dobře pro výpis témat, tak jak jsem chtěl. ještě bych rád, aby u každého tématu byl zobrazen nejnovější příspěvek. dotaz jsem upravil takto: $vypis = mysql_query ("SELECT v.* FROM diskuse v JOIN (SELECT id_tema, text,Max(id) posledni FROM diskuse_prispevky GROUP BY id_tema #ORDER BY posledni DESC ) p ON v.id = p.id_tema ORDER BY p.posledni DESC") při výpisu se mi ale zobrazují jen výsledky z tabulky diskuse (id, název vlákna, autor, datum). Jak mám ještě vypsat pole "text" z diskuse_prispevky? while ($zaznam = mysql_fetch_array($vypis)) { } přes pole $zaznam[] se to nevypíše. Děkuji |
||
Kajman Profil |
#4 · Zasláno: 1. 2. 2016, 13:56:29
SELECT v.*, dp.text FROM diskuse_vlakna v JOIN (SELECT id_tema, Max(id) posledni FROM diskuse_prispeky GROUP BY id_tema #ORDER BY posledni DESC #LIMIT 50 ) p ON v.id = p.id_tema JOIN diskuse_prispeky dp ON p.posledni = dp.id ORDER BY p.posledni DESC |
||
kopi Profil |
#5 · Zasláno: 1. 2. 2016, 16:21:44
Kajman:
děkuji, asi jsem to už díky vám pochopil, jak to funguje :) Ještě mám poslední dotaz: když mám v obou tabulkách sloupec id nebo datum, jak mám rozlišit jejich výpis? Já si vypíšu úryvek příspěvku a k tomu z jakého je to vlákna. Přičemž u úryvku příspěvku je odkaz na celý příspěvek - odkaz má právě parametr "id", a stejně mám i odkaz na "název vlákna" také s parametrem "id", kdy po kliknutí se zobrazí všechny příspěvky ve vláknu. A právě nevím, jak rozlišit, kdy se v odkazu zobrazi id z tabulky příspěvků a kdy id z tabulky vlákna. |
||
Kajman Profil |
#6 · Zasláno: 1. 2. 2016, 19:18:29
Použijte alias pro kolizní sloupec.
SELECT v.*, dp.text, dp.datum AS datum_posledniho AS lze vynechat. |
||
Časová prodleva: 9 let
|
0