我想从 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 中,它会显示所有行中类别的最后一个值。
答案 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";