Autor Zpráva
lolek577
Profil *
Mam tabulky
forum_topics (id, date, title, text)
forum_posts (id, date, topic, text, user)

Potreboval bych udelat vypis temat, ktere by se radili od nejnovejsiho podle datumu nejnovejsiho prispevku souvisejici stim tematem.

Mel jsem ten kod naslednovne, ale zobrazoval jedno tema treba trikrat(podle poctu prispevku) a jeste k tomu nezobrazil tema kdyz u nej nebyl zadny prispevek.
$sql = "SELECT forum_topics.title, forum_topics.id
        FROM forum_topics, forum_posts
        WHERE forum_posts.topic = forum_topics.id
        ORDER BY forum_posts.date DESC LIMIT 8";

Dekuji moc predem za pomoc!!
Taps
Profil
lolek577
zkus to přes left join

$sql = "SELECT forum_topics.title,fp.forum_posts from forum_topics ft 
left join forum_posts fp on ft.id=fp.id order by fp.date DESC LIMIT 8
lolek577
Profil *
Jej jsem z toho nejakej zmatenej, ft = forum_topics a fp = forum_posts...

prepsal jsem to takto ale je to asi spatne ze

$sql = "SELECT forum_topics.title from forum_topics, forum_posts
left join forum_posts on forum_topics.id=forum_posts.id order by forum_posts.date DESC LIMIT 8";
Taps
Profil
lolek577
zkoušel jsi to ? když tak si vypiš mysql_error
lolek577
Profil *
Pise to:

Not unique table/alias: 'forum_posts'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /localhost/lam/include/title_page.php on line 161
bukaj
Profil
lolek577
SELECT forum_topics.id, forum_topics.title, MAX(forum_posts.date) AS last_post_date
FROM forum_topics 
LEFT JOIN forum_posts ON forum_topics.id = forum_posts.topic 
GROUP BY forum_topics.id 
ORDER BY MAX(forum_posts.date) DESC
lolek577
Profil *
Funguje!!

Nemam slov, dekuju fakt nastotisickrat!
lolek577
Profil *
Kdyz pridam tema tak ho to neda nazacatek, da se to nejak upravit, aby kdyz tam neni zadny prispevek aby se to zaradilo podle datumu toho topicu?
bukaj
Profil
lolek577
aby kdyz tam neni zadny prispevek aby se to zaradilo podle datumu toho topicu?
Stačí malá změna:
SELECT forum_topics.id, forum_topics.title, IFNULL(MAX(forum_posts.date), forum_topics.date) AS last_post_date 
FROM forum_topics  
LEFT JOIN forum_posts ON forum_topics.id = forum_posts.topic  
GROUP BY forum_topics.id  
ORDER BY last_post_date DESC
lolek577
Profil *
Si zlatej, jeste jednou dekuju ! Vse funguje jak ma!

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: