Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> unikalne nazwy tematow, Tworzenie forum - wypis tematów
gakusei
post 21.07.2008, 23:23:08
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 3
Dołączył: 17.07.2007

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


witam!
Podczas robienia wewnętrznego, prostego forum napotkalem na taki problem:
Tematy wiadomosci oraz ich autorzy są zapisywani w tabeli forum_temat, odpowiedzi na dane tematy są umieszczane w forum_wpis. Chce pokazać ogólny wykaz tematów z forum, ale gdy temat ma np 3 odpowiedzi pojawia mi się trzykrotnie. Czy ma ktoś na to jakiś sprawdzony patent? Baza to MySQL 4.0.24.

tabela forum_temat:
  1. id_temat int(11) AUTO_INCREMENT
  2. data_wpisu varchar(11)
  3. autor varchar(100)
  4. temat varchar(255)


tabela forum_wpis:
  1. id_wpis int(11) AUTO_INCREMENT
  2. id_user int(11) 0
  3. data_wpisu varchar(11)
  4. autor varchar(100)
  5. email varchar(100)
  6. id_temat int(11) 0 << FK z forum_temat
  7. tresc text


z gory dziekuje
Go to the top of the page
+Quote Post
kwiateusz
post 21.07.2008, 23:29:24
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a zapytanie ja kto wyciagasz?

bo
  1. SELECT * FROM forum_temat
i masz liste tematow...
Go to the top of the page
+Quote Post
gakusei
post 22.07.2008, 08:32:42
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 3
Dołączył: 17.07.2007

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


Cytat(kwiateusz @ 22.07.2008, 00:29:24 ) *
a zapytanie ja kto wyciagasz?

bo
  1. SELECT * FROM forum_temat
i masz liste tematow...

zapytanie to jest zbyt banalne, nie pokazuje ono tego co chcialem. Przedstawie to inaczej:
mam np 10 tematow na forum, łącznie odpowiedzi użytkownikow na te forum jest np: 15, na niektore tematy nikt nie odpowiedzial, inne maja np po 3 odpowiedzi.. roznie. Aby pokazać tresc tematu razem z datą ostatniego wpisu musze połączyć te dwie tabele... no i wp rzypadku wiekszej ilosci wpisow do tematu niz 1, temat pojawia sie wielokrotnie (tyle razy ile ma wpisow). czyli jezeli bylo 15 odpowiedzi na wszystkie tematy łącznie to na wykazie mam 15x a nie 10x temat... any idea?
Go to the top of the page
+Quote Post
webdice
post 22.07.2008, 08:35:02
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. SELECT DISTINCT(`field`) FROM `table`
Go to the top of the page
+Quote Post
gakusei
post 22.07.2008, 08:38:48
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 3
Dołączył: 17.07.2007

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


Cytat(webdicepl @ 22.07.2008, 09:35:02 ) *
  1. SELECT DISTINCT(`field`) FROM `table`

dlaczego takie cos uporczywie mi powiela?
  1. SELECT DISTINCT(forum_temat.id_temat AS id_temat1), FROM_UNIXTIME(forum_wpis.data_wpisu, '%Y-%m-%d') AS data_wpisu1, forum_temat.temat AS temat1, forum_wpis.autor AS autor1 FROM forum_wpis INNER JOIN forum_temat ON forum_temat.id_temat=forum_wpis.id_temat ORDER BY forum_temat.id_temat DESC
Go to the top of the page
+Quote Post
woj_tas
post 22.07.2008, 08:40:41
Post #6





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


left join + group by


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 22.07.2008, 09:38:06
Post #7


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




albo jak to w ipb rozwiązano, do tabeli forum_tematy wrzuc na sztywno, date ostatniego postu, autora tego postu i ilosc komentarzy coby bazy nie obiciążac smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 12:10