我需要加入一个表并从该表中减去位置和价格bycat1,但我无法弄清楚codeigniter上的函数。
这是我检索产品的功能。
function get_product($id, $related=true)
{
$result = $this->db->get_where('products',array('id'=>$id))->row();
// get position, pricebycat1, join category_products 'category_products.product_id=products.id'
if(!$result) {
return false;
}
$related = json_decode($result->related_products);
if(!empty($related)) {
//build the where
$where = false;
foreach($related as $r) {
if(!$where) {
$this->db->where('id', $r);
} else {
$this->db->or_where('id', $r);
}
$where = true;
}
$result->related_products = $this->db->get('products')->result();
} else {
$result->related_products = array();
}
$result->categories = $this->get_product_categories($result->id);
// group discount?
if($this->group_discount_formula) {
eval('$result->price=$result->price'.$this->group_discount_formula.';');
}
return $result;
}
如有任何帮助,我们将不胜感激。
您无法仅使用
get_where()
加入另一个表。
尝试使用这种方法来提取数据
$this->db->select('*.products, category_products.position, category_products.price');
$this->db->from('products');
//join LEFT by default
$this->db->join('category_products', 'category_products.product_id=products.id');
$this->db->where('products.id = '.$id);
$this->db->row();