![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Hej.
zastanawaiłęm sie, czy nie dać jakiegoś mądrzejeszgo tematu, ale chyba taki jest najbardziej obrazowy. Akcja toczy się na MySQL, gdzie mamy 2 tabele, produkty i kategorie. Każdy produkt, poza id i nazwą, ma informacje o tym, do jakiej kategorii należy, oraz 1 pole dodatkowe - flagę, mogąć przyjmować wartość 0 lub 1. Zadanie polega na tym, by wyświetlić listę kategorii, wraz z 2 liczbami dotyczącymi ilości produktów należących do tej kategorii, osobno jednak licząc produkty o fladze 0, a osobno - 1. Przykład struktury bazy: Kod # Struktura tabeli dla `kategorie`
CREATE TABLE kategorie ( id int(11) NOT NULL auto_increment, nazwa varchar(100) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; # Zrzut danych tabeli `kategorie` INSERT INTO kategorie VALUES (1, 'kategoria 1'); INSERT INTO kategorie VALUES (2, 'kategoria 2'); INSERT INTO kategorie VALUES (3, 'kategoria 3'); # -------------------------------------------------------- # Struktura tabeli dla `produkty` CREATE TABLE produkty ( id int(11) NOT NULL auto_increment, nazwa varchar(100) NOT NULL default '', kat_id int(11) NOT NULL default '0', flaga tinyint(4) NOT NULL default '0', PRIMARY KEY (id), KEY kat_id (kat_id,flaga) ) TYPE=MyISAM; # Zrzut danych tabeli `produkty` INSERT INTO produkty VALUES (1, 'produkt 1', 1, 0); INSERT INTO produkty VALUES (2, 'produkt 2', 1, 0); INSERT INTO produkty VALUES (3, 'produkt 3', 1, 1); INSERT INTO produkty VALUES (4, 'produkt 4', 2, 0); Moim marzeniem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) byłoby otrzymać wynik w postaci: Kod |id | nazwa | produkt_flag_0 | produkt_flag_1 |
|---+---------------+-------------------+------------------| | 1 | kategoria 1 | 2 | 1 | |---+---------------+-------------------+------------------| | 2 | kategoria 2 | 1 | 0 | |---+---------------+-------------------+------------------| | 3 | kategoria 3 | 0 | 0 | ------------------------------------------------------------ W pierwszej chwili zadanie wydaje się banalne. Ale ... chyba takie nie jest. A zresztą przekonajcie sie sami (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Choć nie rozumiem, po co w warunku adwola jest sprawdzanie IFNULL :/
Usuń to i sprawdź na danych które podałeś to się dowiesz. :wink: |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:31 |