BusteR Posted November 28, 2008 Share Posted November 28, 2008 Plaincart is a simple PHP e-commerce shopping cart. It stores and retrieves 2 level category info in Mysql database as shown below tbl_category | cat_id | cat_parent_id | cat_name | 12 0 Female 17 12 T-Shirt function buildCategoryOptions without modification build a drop down like... Female (level 1 - sex) >> T-Shirt (level 2 - group) HELP: I wish to modify the PHP to a 3 level categories instead as shown below... tbl_category | cat_id | cat_parent_id | cat_name | 12 0 Female 17 12 T-Shirt 20 17 Goridano function buildCategoryOptions should build a drop down like... Female (level 1 - sex) >> T-Shirt (level 2 - group) >> Goridano (level 3 - brand) Codes I have tried to add in the codes to the following function which will do a 3 level categories poll, but somehow it is not working but in any case, i shall list my attempted codes below in case someone can correct my mistakes. /* Generate combo box options containing the categories we have. if $catId is set then that category is selected */ function buildCategoryOptions($catId = 0) { $sql = "SELECT cat_id, cat_parent_id, cat_name, cat_description FROM tbl_category ORDER BY cat_id"; $result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error()); $categories = array(); while($row = dbFetchArray($result)) { list($id, $parentId, $name, $cat_description) = $row; if ($parentId == 0) { // we create a new array for each top level categories $categories[$id] = array('name' => $name, 'children' => array()); } else { // the child categories are put int the parent category's array $categories[$parentId]['children'][] = array('id' => $id, 'name' => $name); } <------- START of my add-in attempted codes -------> //else { // check if this is 2nd OR 3rd level category //$sql = mysql_query("SELECT cat_parent_id // FROM tbl_category // WHERE cat_id = $parentId"); //$row = mysql_fetch_assoc($sql); //if ($row["cat_parent_id"] == 0) { // we create a new array for 2nd level categories // added 'children' => array() //$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name, 'children2' => array()); //} //else { // the child categories are put int the parent category's array //$categories[$row["cat_parent_id"]][$parentId]['children2'][] = array('id' => $id, 'name' => $name); //$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name); //} //} // else } <------- END of my add-in attempted codes -------> // build combo box options $list = ''; foreach ($categories as $key => $value) { $name = $value['name']; $children = $value['children']; $list .= "<optgroup label=\"$name\">"; foreach ($children as $child) { $list .= "<option value=\"{$child['id']}\""; if ($child['id'] == $catId) { $list.= " selected"; } $list .= ">{$child['name']}</option>\r\n"; } $list .= "</optgroup>"; } return $list; } Link to comment https://forums.phpfreaks.com/topic/134615-e-commerce-plaincart-help-to-modify-to-3-levels-categories/ Share on other sites More sharing options...
BusteR Posted December 2, 2008 Author Share Posted December 2, 2008 any ideas? help pls :-\ Link to comment https://forums.phpfreaks.com/topic/134615-e-commerce-plaincart-help-to-modify-to-3-levels-categories/#findComment-703746 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.