
Mam do Was pewną prośbę, jako, iż nie jestem masterem w optymalizacji kodu, prosiłbym o najwydajniejsze rozwiązanie możliwego problemu, nawet w zmianie zapytania sql

Poniżej kawałek mojego kodu:
<?php function generate_katalog_list() { $katalog_list = sql_cache('get', 'katalog_list'); $subkatalog_list = sql_cache('get', 'subkatalog_list'); if(!$katalog_list) { $sql = " SELECT k.katalog_id, k.katalog_name, COUNT(p.produkt_id) AS katalog_productnum FROM " . DB_KATALOG . " k, " . DB_PRODUKT . " p WHERE p.katalog_id = k.katalog_id ORDER BY k.katalog_name ASC "; $result = $db->sql_query($sql); $katalog_list = $db->sql_fetchrowset($result); $sql = " SELECT k.katalog_id, k.katalog_name, k.parent_id COUNT(p.produkt_id) AS katalog_productnum FROM " . DB_KATALOG . " k, " . DB_PRODUKT . " p WHERE p.katalog_id = k.katalog_id AND k.parent_id IN ($id_list) ORDER BY k.katalog_name ASC "; $result = $db->sql_query($sql); while($row = $db->sql_fetchrow($result)) { $subkatalog_list[$row['parent_id']][]['id'] = $row['katalog_id']; $subkatalog_list[$row['parent_id']][]['name'] = $row['katalog_name']; // te 3 zmienne zrobione 'na pałkę', kod i tak pisany na szybko :) $subkatalog_list[$row['parent_id']][]['pnum'] = $row['katalog_productnum']; } sql_cache('write', 'katalog_list', $katalog_list); sql_cache('write', 'subkatalog_list', $subkatalog_list); } foreach($katalog_list as $id => $val) { /////////////////// $katalog_id = $val['katalog_id']; $katalog_name = $val['katalog_name']; $katalog_productnum = $val['katalog_productnum']; ////////////////////// wyrzucenie do templatki $subkatalog_id = $subkatalog_list[$katalog_id][$i]['id']; $subkatalog_name = $subkatalog_list[$katalog_id][$i]['name']; $subkatalog_productnum = $subkatalog_list[$katalog_id][$i]['katalog_productnum']; ////////////////////// wyrzucenie do templatki } } } } ?>
Proszę się nie przejmować głupotami w stylu. tworzenie cache do subkatalogów np. przy braku katalogów, kod pisałem na szybko, aby przede wszystkim przedstawić problem, skoro i tak stoję teraz w miejscu

Problem polega na tym, że wiem, że nie jest to dobre rozwiązanie, nie wiem nawet czy zadziała, ale liczę na Was, że mi pomożecie

Moim celem w tej funkcji jest, aby pod koniec uzyskać pętle, na której będę mógł wypisać katalogi, w której też będę mógł zamieścić następną pętlę z subkatalogami
