![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
Mam taki kodzik
[sql:1:b679ee5d15]SELECT fora.id,fora.nazwa,fora.opis, count( DISTINCT tematy.id ) AS ilosc_tematow , count(DISTINCT posty.id ) AS ilosc_postow FROM fora, tematy, posty, uzytkownicy WHERE uzytkownicy.id = posty.autor AND tematy.forum_id=fora.id AND posty.forum_id=fora.id GROUP BY fora.id[/sql:1:b679ee5d15] i teraz jest taki problem, że jak do tematu nie jest przypisany żaden post to nie zwraca żadnego wyniku wydaje mi się że chodzi o zmianę tego co jest za WHERE |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Problem jest w tym, ze w tym zapytaniu zastosowane sa INNER JOIN'y, a zeby uzyskac to co chcesz trzebaby uzyc LEFT/RIGHT JOIN'ow.
Pokaz strukture tych tabeli to moze da sie cos wymyslec. PS. a najlepiej jakbys wyexportowal np. w phpMyAdmin'ie jakies przykladowe dane (lacznie ze struktura) i to gdzies umiescil, wtedy latwiej byloby pomoc. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
Kod # Struktura tabeli dla `fora` # CREATE TABLE `fora` ( `id` int(10) unsigned NOT NULL auto_increment, `nazwa` text NOT NULL, `opis` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=3; # # Zrzut danych tabeli `fora` # INSERT INTO `fora` VALUES (1, 'HTML', 'j.w.'); INSERT INTO `fora` VALUES (2, 'asdf', 'dfsdgdfhgd'); Kod # Struktura tabeli dla `tematy` # CREATE TABLE `tematy` ( `id` int(10) unsigned NOT NULL auto_increment, `forum_id` int(10) unsigned NOT NULL default '0', `typ` int(10) unsigned NOT NULL default '0', `zablokowany` int(10) unsigned NOT NULL default '0', `tytul` text NOT NULL, `post_prowadzacy` int(10) unsigned NOT NULL default '0', `wyswietlen` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=4; # # Zrzut danych tabeli `tematy` # INSERT INTO `tematy` VALUES (3, 1, 0, 0, '1-szy temat', 3, 0); Kod # Struktura tabeli dla `posty`
# CREATE TABLE `posty` ( `id` int(10) unsigned NOT NULL auto_increment, `forum_id` int(10) unsigned NOT NULL default '0', `temat_id` int(10) unsigned NOT NULL default '0', `data` int(10) unsigned NOT NULL default '0', `autor` int(10) unsigned NOT NULL default '0', `tresc` longtext NOT NULL, `kolor` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=4; # # Zrzut danych tabeli `posty` # INSERT INTO `posty` VALUES (3, 1, 3, 1078594431, 1, '[url]http://www.kurs.prv.pl[/url]rn[url=http://www.kurs.prv.pl]Kurs[/url]rn', ''); |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:d66d17edbf]SELECT
f.id, f.nazwa, f.opis, count(DISTINCT t.id ) AS ilosc_tematow, count(DISTINCT p.id ) AS ilosc_postow FROM fora f LEFT JOIN tematy t ON (t.forum_id = f.id) LEFT JOIN posty p ON (p.forum_id = f.id) GROUP BY f.id[/sql:1:d66d17edbf] O to chodzilo ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:12 |