Witam serdecznie,
Mam takie pytanko, mam takie tabele:
CREATE TABLE IF NOT EXISTS `cms_kategorie` (
`bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
`enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
UNIQUE KEY `id` (`bf_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `cms_podkategorie` (
`bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
`enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
`kategoria` int(11) NOT NULL,
`podkategoria` int(11) NOT NULL,
UNIQUE KEY `id` (`bf_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
REATE TABLE IF NOT EXISTS `cms_podpodkategorie` (
`bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`nazwa` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL,
`enable` char(1) COLLATE utf8_unicode_ci NOT NULL,
UNIQUE KEY `id` (`bf_id`)
) 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:
$tablicaAA = $ms->query_select("select bf_id, nazwa from cms_kategorie WHERE enable = '1' ORDER by nazwa ASC;");
if (isset($tablicaAA)) {
foreach ($tablicaAA as $wynAA => $warttAA) {
$tablicaa[] = array("name" => $warttAA['nazwa'], "id" => $warttAA['bf_id']);
$tablicaB = $ms->query_select("select bf_id, nazwa, podkategoria from cms_podkategorie WHERE kategoria = '" . $warttAA['bf_id'] . "' and enable = '1' ORDER by nazwa ASC;");
if (isset($tablicaB)) {
foreach ($tablicaB as $wynB => $warttB) {
$tablicaa[] = array("name" => "<span></span>$warttB[nazwa]", "id" => $warttB['bf_id']);
$tablicaC = $ms->query_select("select bf_id, nazwa from cms_podpodkategorie WHERE bf_id = '" . $warttB['podkategoria'] . "' and enable = '1' ORDER by nazwa ASC;");
if (isset($tablicaC)) {
foreach ($tablicaC as $wynC => $warttC) {
$tablicaa[] = array("name" => "<span></span><span></span>$warttC[nazwa]", "id" => $warttC['bf_id']);
}
}
}
}
}
}
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
Ma ktoś pomysł na to może?
Northwest