获取两个值之间的值 - Codeigniter

时间:2015-04-10 11:41:07

标签: php sql codeigniter

我正在开发codeigniter电子商务网站。我有一张桌子

shipping table

product_weight (in kgs)  shipping_charge
1.000                    60
1.500                    90
2.000                    120
2.500                    150
3.000                    180
3.500                    210
4.000                    240

我想查找添加到购物车中的产品的运费。但我无法计算它。如果产品重量是2.800,那么我应该得到shipping_charge值180.我不知道该怎么做。下面是我的代码

function get_shipping_charge(){
    $this->db->select('shipping_charge');
    $this->db->from('shipping_table');
    $this->db->where('product_weight >=', $product_weight);
    $this->db->limit('1');
    $query = $this->db->get();
    return $query->result();
}

3 个答案:

答案 0 :(得分:1)

function get_shipping_charge(){
$this->db->select('shipping_charge');
$this->db->from('shipping_table');
$this->db->where('product_weight >=', $product_weight);
$this->db->order_by("product_weight","ASC");
$this->db->limit('1');
$query = $this->db->get();
return $query->result();
}

答案 1 :(得分:0)

这对你有用吗?

function get_shipping_charge() {
    $this->db->select('IFNULL(MAX(shipping_charge), (SELECT MIN(shipping_charge) FROM shipping_table))');
    $this->db->from('shipping_table');
    $this->db->where('product_weight <=', $product_weight);
    $query = $this->db->get();
    return $query->result();
}

注意

更新了查询以处理小于1.000的权重值。

答案 2 :(得分:0)

试试这个:

function get_shipping_charge() {
    $this->db->select('MIN(shipping_charge) AS shipping_charge');
    $this->db->from('shipping_table');
    $this->db->where('product_weight >=', $product_weight);
    $query = $this->db->get();
    return $query->result();
}