проблема получения данных codeigniter? - PullRequest
0 голосов
/ 12 апреля 2011

Я хочу получить данные из table1 , и мне нужно извлечь данные из другой таблицы table2 с внешним ключом table1 и отобразить в представлениях.Как это возможно?

Мой контроллер:

$data['products'] = $this->MProducts->getProducts($customer_id);
        foreach($data['products'] as $product){
            $cat_id = $product['category_id'];
            $data['category_name'] = $this->MCats->getCategoryById($cat_id);
        }

Мой взгляд:

foreach ($products as $list){
        echo "<tr valign='top'>\n";
        echo "<td align='center'>".$list['name']."</td>\n";

        echo "<td align='center'>".$category_name."</td>\n";
        echo "<td align='center'>";
        echo $list['status'];
        echo "</td>\n";

        echo "<td align='center'>".$list['marked_price']."</td>\n";
        echo "<td align='center'>".$list['discount_percent']."</td>\n";
        echo "<td align='center'>";
        echo anchor('products/partner/edit/'.$list['id'],'edit');
        echo " | ";
        echo anchor('products/partner/delete/'.$list['id'],'delete');
        echo "</td>\n";
        echo "</tr>\n";

В $ category_name он дает последнийзначение категории во всех строках.

1 Ответ

1 голос
/ 12 апреля 2011

Вы должны прочитать о соединениях здесь .

Но вы бы сделали что-то вроде:

$this->db->select('products.*, category.category_name');
$this->db->join('products', 'category.category_id = products.category_id');
$this->db->where('products.customer_id', $customer_id); // i guessed this part
$this->db->get('products');

// РЕДАКТИРОВАТЬ: также у вас есть ошибка в вашем цикле. Это должно выглядеть так:

foreach($data['products'] as $key=>$product){
    $cat_id = $product['category_id'];
    $data['products'][$key]['category_name'] = $this->MCats->getCategoryById($cat_id);
}

тогда, если каждая категория продуктов по вашему мнению использует это:

echo "<td align='center'>".$list['category_name']."</td>\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...