Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Złożone zapytanie
sebekzosw
post
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


Oto zrzut tabeli:
  1. --
  2. -- Struktura tabeli dla `kategorie_stron`
  3. --
  4.  
  5. CREATE TABLE `kategorie_stron` (
  6. `kategoria_id` int(11) NOT NULL AUTO_INCREMENT,
  7. `kategoria_link` varchar(255) collate utf8_polish_ci NOT NULL,
  8. `kategoria_id_glownej` int(11) NOT NULL DEFAULT '0',
  9. `kategoria_ikona` varchar(100) collate utf8_polish_ci NOT NULL,
  10. `kategoria_nazwa` text collate utf8_polish_ci NOT NULL,
  11. `kategoria_opis` text collate utf8_polish_ci NOT NULL,
  12. `kategoria_tag_tytul` text collate utf8_polish_ci NOT NULL,
  13. `kategoria_tag_opis` text collate utf8_polish_ci NOT NULL,
  14. `kategoria_tak_sk` text collate utf8_polish_ci NOT NULL,
  15. `kategoria_lz` text collate utf8_polish_ci NOT NULL,
  16. PRIMARY KEY (`kategoria_id`)
  17. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=9 ;
  18.  
  19. --
  20. -- Zrzut danych tabeli `kategorie_stron`
  21. --
  22.  
  23. INSERT INTO `kategorie_stron` (`kategoria_id`, `kategoria_link`, `kategoria_id_glownej`, `kategoria_ikona`, `kategoria_nazwa`, `kategoria_opis`, `kategoria_tag_tytul`, `kategoria_tag_opis`, `kategoria_tak_sk`, `kategoria_lz`) VALUES
  24. (3, 'internet-i-komputery', 0, '', 'Internet i komputery', 'fsdfdsfsd', '', '', '', ''),
  25. (4, 'biznes', 0, '', 'Biznes', 'fsdf', '', '', '', ''),
  26. (5, 'test', 3, '', 'Test', 'fsdf', '', '', '', ''),
  27. (7, 'gry-komputerowe', 3, '', 'Gry komputerowe', 'dsfsdf', '', '', '', '');


Chce wyświetlić wszystkie główne kategorie (czyli te co mają kategoria_id_glownej='0') a w nawiasie po przecinku wszystkie te co są podkategoriami głównej kategorii, czyli np.: Internet i komputery (Gry komputerowe, Test)

Lecz nie mam bladego pojęcia jak to zrobić? Mógłby ktoś jakoś pomóc?

Chciałem to zrobić jakoś w ten sposób, ale nie działa i w pewnym miejscu już się pogubiłem ;/ (IMG:style_emoticons/default/sad.gif) :
  1. SELECT ks.`kategoria_id` , ks.`kategoria_link` , ks.`kategoria_id_glownej` , ks.`kategoria_ikona` , ks.`kategoria_nazwa`,
  2. (SELECT ks2.`kategoria_id` , ks2.`kategoria_link` , ks2.`kategoria_id_glownej` , ks2.`kategoria_ikona` , ks2.`kategoria_nazwa` FROM `kategorie_stron` ks2 WHERE ks2.kategoria_id_glownej = ks.kategoria_id) AS podkategorie
  3. FROM `kategorie_stron` ks


Bardzo proszę po pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
zzeus
post
Post #2





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


  1. SELECT ks.kategoria_nazwa, GROUP_CONCAT(ks1.kategoria_nazwa) AS podkategorie
  2. FROM `kategorie_stron` AS ks
  3. LEFT JOIN kategorie_stron AS ks1 ON ks.kategoria_id = ks1.kategoria_id_glownej


Powinno zadziałać, pokombinuj tak aby dostać wszystkie dane jakie Cię interesują

Ten post edytował zzeus 8.01.2010, 12:38:54
Go to the top of the page
+Quote Post
sebekzosw
post
Post #3





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


Zwróciło to następująco błąd ;/:

Kod
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Go to the top of the page
+Quote Post
zzeus
post
Post #4





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


No tak zapomniałem o grupowaniu

  1. SELECT ks.kategoria_nazwa, GROUP_CONCAT(ks1.kategoria_nazwa) AS podkategorie
  2. FROM `kategorie_stron` AS ks
  3. LEFT JOIN kategorie_stron AS ks1 ON ks.kategoria_id = ks1.kategoria_id_glownej
  4. GROUP BY ks.kategoria_id
Go to the top of the page
+Quote Post
sebekzosw
post
Post #5





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


a jak zrobić, aby podkategorie był w tablicy z jakimiś dodatkowymi elementami typu `kategoria_link`??
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 - 21:56