Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie w forum
snipe
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

Ostrzeżenie: (0%)
-----


Mam tabele zwiazane z forum:

kategorie
id_kategorii
nazwa

tematy:
id_tematu
id_kategorii
czas_dodania
temat
tresc

posty:
id_postu
id_tematu
id_kategorii
czas_dodania
tresc


i chcialbym posortowac odpowiednio tematy w kategoriach wg ostatnio dodanego postu(czyli wg czasu_dodania posta), np.

Temat: |Ostatnia wypowiedz(ostatni post w tym temacie):
Jakis sobie topic |2005-11-14 16:31:45
Inny temat |2005-11-13 14:09:21

Zrobile cos takiego:

  1. SELECT posty.id_tematu,max(posty.czas_dodania) AS last_post,tematy.temat
  2. FROM posty,tematy WHERE posty.id_tematu=tematy.id_tematu && posty.id_kategorii=$id_category GROUP BY posty.id_tematu ORDER BY last_post DESC;


ale wtedy jesli nie mam zadnego posta w temacie to nie wyswietla mi w ogole tematu w daej kategorii :/
Za wszelka pomoc dzieki, bo ja juz naprawde nie wiem jak to polaczyc :/

Ten post edytował snipe 15.11.2005, 16:37:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
orestes
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.01.2005

Ostrzeżenie: (0%)
-----


  1. GROUP BY posty.id_tematu
skup się na tym (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Synaps
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


  1. SELECT posty.id_tematu,max(posty.czas_dodania) AS last_post,tematy.temat
  2. FROM posty,tematy WHERE posty.id_tematu=tematy.id_tematu && posty.id_kategorii=$id_category GROUP BY posty.id_tematu ORDER BY last_post DESC;


Jeśli zakładasz że tematy które nie posiadają żadnych postów mają byc również wyświetlane, przy takiej postaci jako powyżej musisz skorzystac z RIGHT JOIN'a.
Wybacz że nie napisze dokładnie nowej wersji zapytania, ale uważam że więcej się nauczysz jak sam to sobie przeciwczysz (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) Wystarczy google+right join lub left join ale to już zapewne sam zrozumiesz.
Go to the top of the page
+Quote Post
snipe
post
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

Ostrzeżenie: (0%)
-----


Synaps nie badz taki zarzuc kodem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ja sie najszybciej ucze na przykladzie a ze ten przyklad dotyczy mnie to jeszcze szybciej (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Edit:
Udalo mi sie zrobic cos takiego:

  1. SELECT u.user_name,p.id_user,t.id_topic,topic, max(p.time_added) AS last_post
  2. FROM forum_posts p, users_new u RIGHT JOIN forum_topics t ON p.id_topic=t.id_topic AND p.id_category=t.id_category OR u.id_user=t.id_user WHERE t.id_category=3 GROUP BY t.id_topic ORDER BY last_post DESC;


Zmienilem troche nazwy, ale raczej wiadomo o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz mam takie pytanko, jak zrobic ze jezeli topic nie ma postow(null) ale jego data dodania bedzie nowsza od daty dodania jakiegos posta w innym temacie to bedzie on wyswietlany pierwszy na liscie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował snipe 16.11.2005, 00:18:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:20