Hey,
ich möchte die function xtc_get_categories im XTC Shop benutzen, und mir damit die obersten Kategorien der Hierarchie (quasi die root hierarchien) in eine Drop Down Box laden. D.h. die Kategorien mit der parent_id = 0.
Die Funktion sieht wie folgt aus:
Zitat:
function xtc_get_categories($categories_array = '', $parent_id = '0', $indent = '') {
$parent_id = xtc_db_prepare_input($parent_id);
if (!is_array($categories_array)) $categories_array = array();
$categories_query = "select
c.categories_id,
cd.categories_name
from " . TABLE_CATEGORIES . " c,
" . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.parent_id = '" . xtc_db_input($parent_id) . "'
and c.categories_id = cd.categories_id
and c.categories_status != 0
and cd.language_id = '" . $_SESSION['languages_id'] . "'
order by sort_order, cd.categories_name";
/*
$categories_query = "SELECT c.categories_id, cd.categories_name FROM categories c, categories_description cd WHERE
c.parent_id = '0'
AND c.categories_id = cd.categories_id
AND c.categories_status !=0
AND cd.language_id = '2'
ORDER BY sort_order, cd.categories_name";*/
$categories_query = xtDBquery($categories_query);
while ($categories = xtc_db_fetch_array($categories_query,true)) {
$categories_array[] = array('id' => $categories['categories_id'],
'text' => $indent . $categories['categories_name']);
if ($categories['categories_id'] != $parent_id) {
$categories_array = xtc_get_categories($categories_array, $categories['categories_id'], $indent . ' ');
}
}
return $categories_array;
}
|
Das was in rot im zitat steht, wäre mein ziel., gebe ich dieses sql statement in phpmyadmin ein, bekomme ich das ergebnis angezeigt, wie ich es mir wünsche. Nur 4 kategorien.
Nun mein Problem: Ersetze ich den dynamischen query durch den statischen im kommentar erhalte ich:
Zitat:
|
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in E:\Programme\xampp\htdocs\xtcommerce\inc\xtc_get_categories.inc.php on line 45
|
und rufe ich die funktion ganz normal auf und übergebe als 2. parameter eine 0, so bekomme ich trotzdem alle kategorien angezeigt:
so sieht mein aufruf aus:
Zitat:
$box_smarty->assign('DROP_DOWN_AJAX_SEARCH',xtc_draw_pull_down_menu('categories_id',
xtc_get_categories(
array
(
array ('id' => '', 'text' => TEXT_ALL_CATEGORIES)
),
0
)
,"",'onchange="showResult_foreign_search(\'dropdown\',1,this.value);" style="width: 30%"'));
|
Ich versuche quasi wie in der drop down box für kategorien in der advanced search anstatt alle kategorien, nur die oberste hierarchie zu laden. Ich hoffe ihr versteht mein Problem, ich ärgere mich damit jetzt schon länger herum... ist wahrscheinlich nur ein parameterübergabe problem?
mfg
d-anonymous