Witam
Problem wygląda tak:
mam dwie tabele: kategorie oraz przedmiot, wiadomo że w przedmiocie(aukcji) zawierają się klucze o wartości "id_kategoria", jednak tabela przedstawia drzewo kategorii więc produkt jest przypięty do końcówki (kategoria "laptop" zawiera "acer" oaz "samsung" więc Acer inspiron X3 będzie zawierał klucz z "acer" anie z "laptop"), i właśnie tu zaczyna się problem: jak kliknę na link acer to wyświetlę spokojnie acery ale jak kliknę "laptop" to jak mam wyświetlić produkty podkategorii zachowując sortowanie ogólne (np. produkty po czasie rejestracji) - wspomnę iż zagłębienie kategorii jest nieograniczone.
Niżej przedstawiam tabelę oraz funkcję rysującą drzewo kategorii.
Tabela aukcji:CREATE TABLE IF NOT EXISTS `przedmiot` (
`id_przedmiot` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`klucz_user_przedmiot` mediumint(8) UNSIGNED DEFAULT NULL,
`klucz_kategoria_przedmiot` mediumint(7) UNSIGNED NOT NULL,
`zdjecie_przedmiot` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
`tytul_przedmiot` varchar(70) COLLATE utf8_unicode_ci NOT NULL,
`krotki_opis_przedmiot` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
`klucz_opis_przedmiot_przedmiot` mediumint(8) UNSIGNED NOT NULL,
`cena_przedmiot` double(10,2) UNSIGNED NOT NULL,
`stan_magazynowy_przedmiot` mediumint(5) UNSIGNED NOT NULL,
`czas_trwania_przedmiot` tinyint(2) UNSIGNED DEFAULT NULL,
`klucz_opcje_dostawy_koszt_przedmiot` mediumint(8) UNSIGNED NOT NULL,
`wysylka_w_ciagu_przedmiot` tinyint(1) UNSIGNED DEFAULT NULL,
`faktura_vat_przedmiot` tinyint(1) UNSIGNED DEFAULT NULL,
`dotadkowe_informacje_przedmiot` varchar(500) COLLATE utf8_unicode_ci DEFAULT NULL,
`p_stronaglowna_przedmiot` tinyint(1) UNSIGNED NOT NULL,
`p_stronakategorii_przedmiot` tinyint(1) UNSIGNED NOT NULL,
`p_wyroznienieproduktu_przedmiot` tinyint(1) UNSIGNED NOT NULL,
`p_podswietlenie_przedmiot` tinyint(1) UNSIGNED NOT NULL,
`p_produktwpromocja_przedmiot` double(10,2) UNSIGNED NOT NULL,
`status_przedmiot` tinyint(2) DEFAULT NULL,
`data_rejestracji_przedmiot` datetime NOT NULL,
`data_zakonczenia_przedmiot` datetime DEFAULT NULL,
PRIMARY KEY (`id_przedmiot`),
KEY `krotki_opis_przedmiot_2` (`krotki_opis_przedmiot`),
KEY `tytul_przedmiot_3` (`tytul_przedmiot`),
KEY `krotki_opis_przedmiot_3` (`krotki_opis_przedmiot`),
FULLTEXT KEY `tytul_przedmiot` (`tytul_przedmiot`),
FULLTEXT KEY `krotki_opis_przedmiot` (`krotki_opis_przedmiot`),
FULLTEXT KEY `tytul_przedmiot_2` (`tytul_przedmiot`),
FULLTEXT KEY `tytul_przedmiot_4` (`tytul_przedmiot`),
FULLTEXT KEY `krotki_opis_przedmiot_4` (`krotki_opis_przedmiot`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10000586 ;
Tabela kategorie:CREATE TABLE IF NOT EXISTS `kategoria` (
`id_kategoria` mediumint(7) UNSIGNED NOT NULL AUTO_INCREMENT,
`rodzic_kategoria` mediumint(7) UNSIGNED NOT NULL,
`nazwa_kategoria` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`tytul_kategoria` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
`meta_description` varchar(700) COLLATE utf8_unicode_ci DEFAULT NULL,
`meta_keywords` varchar(500) COLLATE utf8_unicode_ci DEFAULT NULL,
`przyjazny_url_kategoria` varchar(400) COLLATE utf8_unicode_ci DEFAULT NULL,
`status_kategoria` smallint(5) UNSIGNED NOT NULL,
PRIMARY KEY (`id_kategoria`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10000228 ;
Funkcja rysująca drzewo:function view_category_ul_li_tree_root
($rodzic_kategoria, $level) { $result = mysql_query("SELECT a.id_kategoria, a.nazwa_kategoria, a.przyjazny_url_kategoria, Deriv1.Count FROM `kategoria` a LEFT OUTER JOIN (SELECT rodzic_kategoria, COUNT(*) AS Count FROM `kategoria` GROUP BY rodzic_kategoria) Deriv1 ON a.id_kategoria = Deriv1.rodzic_kategoria WHERE a.rodzic_kategoria=" . $rodzic_kategoria);
if ($row['Count'] > 0) {
$ar .= '<li id="id' . $row['id_kategoria'] . '" class="folder"><span><a href="#" onClick="loadPage1(\'./index.php?view=category&action=editcategory&decision=show&type_of_loading=ajax&delete=no&id_category=' . $row['id_kategoria'] . '\');">' . $row['nazwa_kategoria'] . '</a></span>
<ul>'.view_category_ul_li_tree_root($row['id_kategoria'], $level + 1).'</ul></li>';
} elseif ($row['Count'] == 0) {
$ar .= '<li class="noLink" id="id' . $row['id_kategoria'] . '"><span><a href="#" onClick="loadPage1(\'./index.php?view=category&action=editcategory&decision=show&type_of_loading=ajax&delete=yes&id_category=' . $row['id_kategoria'] . '\');">' . $row['nazwa_kategoria'] . '</a></span></li>';
}
}
return $ar;
}