Неисправное динамическое меню продукта с PHP и MYSQL - PullRequest
1 голос
/ 10 марта 2012

Я делаю меню продуктов, которые были вставлены на сайт. Только ошибка возникла, и я не могу понять, как ее исправить.

Мой код:

public function getProductList($type = NULL, $brand = NULL){
  if(empty($type) and empty($brand)){

     $types = $this->productmodel->getTypeList(); // Category as arraylist
     $brands = $this->productmodel->getBrandList(); // Brandnames as arraylist
     $products = $this->productmodel->getProduct(); // All available products

     $menu = array();

     foreach($products as $product) {
          [$product['brand_id']]
          $menu[$product['type_id']] = array (
        'type' => array(
        'url' => base_url('index.php/productcontroller/getProductList/'.$product['type_id']),
        'type_name' => $types[$product['type_id']]
        )
    );

        // Brands
       $menu[$product['type_id']]['brands'] = array (
       $product['brand_id']['brand'] => array(
        'url' => base_url('index.php/productcontroller/getProductList/'.$product['type_id'].'/'.$product['brand_id']),
        'brand_name' => $brands[$product['brand_id']]
        )
    );
}
return $menu;
}

Дальше объяснил:

У меня есть три таблицы в моей базе данных. 1.Type - с: type.id и type_name, 2. Бренд - с: brand.id и brand_type, 3.Продукты - с: вся информация о продуктах с идентификаторами из таблиц сверху.

Что происходит, так это то, что будет показан только последний вставленный продукт. Таким образом, все остальные бренды перезаписываются. Я хотел перезаписать только названия брендов, которые повторяются, поэтому я использую (brand ['id']) Как я мог сделать эту работу? Я использую Codeigniter.

Спасибо за ваше время и усилия,

Привет

1 Ответ

0 голосов
/ 10 марта 2012

Вы перезаписываете массив $menu[$type_id]['brands'] на каждой итерации.Я думаю, что вы имели в виду -

foreach($products as $product) {

    $menu[$product['type_id']]['type'] = array (
        'url' => base_url('index.php/productcontroller/getProductList/'.$product['type_id']),
        'type_name' => $types[$product['type_id']]
    );

    // Brands
    $menu[$product['type_id']]['brands'][$product['brand_id']]['brand'] = array(
        'url' => base_url('index.php/productcontroller/getProductList/'.$product['type_id'].'/'.$product['brand_id']),
        'brand_name' => $brands[$product['brand_id']]
    );

}
...