codeigniter数据检索问题?

时间:2011-04-12 12:01:02

标签: php codeigniter

我想从 table1 检索数据,我必须使用 table1 的外键从另一个表 table2 检索数据并显示在观点。怎么可能?

我的控制器是:

$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 个答案:

答案 0 :(得分:1)

您应该阅读有关加入here的信息。

但你会做类似的事情:

$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";