2011-04-12 76 views
0

我想從表1 檢索數據,我不得不從另一個表表2與意見表1的外鍵和顯示檢索數據。這怎麼可能?codeigniter數據檢索問題?

我的控制器:

$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

您應該閱讀有關連接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";