0

我需要加入一个表并从该表中减去 position 和 pricebycat1 但我无法弄清楚 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;
}

任何帮助表示赞赏。

4

1 回答 1

0

您不能仅使用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();
于 2013-05-05T12:36:53.703 回答