Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Dynamicznie budowane menu
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Mam takie pytanko, mam takie tabele:
  1. CREATE TABLE IF NOT EXISTS `cms_kategorie` (
  2. `bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
  4. `enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
  5. UNIQUE KEY `id` (`bf_id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  7.  
  8. CREATE TABLE IF NOT EXISTS `cms_podkategorie` (
  9. `bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  10. `nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
  11. `enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
  12. `kategoria` int(11) NOT NULL,
  13. `podkategoria` int(11) NOT NULL,
  14. UNIQUE KEY `id` (`bf_id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
  16.  
  17. REATE TABLE IF NOT EXISTS `cms_podpodkategorie` (
  18. `bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  19. `nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
  20. `enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
  21. UNIQUE KEY `id` (`bf_id`)
  22. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


chciałbym w zbudować menu na zasadzie:
- kategoria
-- podkategorie
--- podpodkategorie

Czy da się to jakoś w 1 zapytaniu wyświetlić? Ew. w php?

Próbowalem czymś takim:
  1. $tablicaAA = $ms->query_select("select bf_id, nazwa from cms_kategorie WHERE enable = '1' ORDER by nazwa ASC;");
  2. if (isset($tablicaAA)) {
  3. foreach ($tablicaAA as $wynAA => $warttAA) {
  4. $tablicaa[] = array("name" => $warttAA['nazwa'], "id" => $warttAA['bf_id']);
  5. $tablicaB = $ms->query_select("select bf_id, nazwa, podkategoria from cms_podkategorie WHERE kategoria = '" . $warttAA['bf_id'] . "' and enable = '1' ORDER by nazwa ASC;");
  6. if (isset($tablicaB)) {
  7. foreach ($tablicaB as $wynB => $warttB) {
  8. $tablicaa[] = array("name" => "<span></span>$warttB[nazwa]", "id" => $warttB['bf_id']);
  9. $tablicaC = $ms->query_select("select bf_id, nazwa from cms_podpodkategorie WHERE bf_id = '" . $warttB['podkategoria'] . "' and enable = '1' ORDER by nazwa ASC;");
  10. if (isset($tablicaC)) {
  11. foreach ($tablicaC as $wynC => $warttC) {
  12. $tablicaa[] = array("name" => "<span></span><span></span>$warttC[nazwa]", "id" => $warttC['bf_id']);
  13. }
  14. }
  15. }
  16. }
  17. }
  18. }


Problem w tym, że w wyniku działania tego skryptu otrzymuję:
Kategoria
- podpodkategoria 1
- podkategoria 1
- podpodkategoria 1
- podkategoria 2

Czyli nie dość że nie wyświetla w poprawnej kolejności, to jeszcze powiela podpodkategorie (IMG:style_emoticons/default/sad.gif)

Ma ktoś pomysł na to może?


Northwest
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.08.2025 - 01:15