使用codeigniter

时间:2015-07-30 07:11:29

标签: php mysql codeigniter

在我的应用程序中,每个用户都可以喜欢每个评论。但是每个用户都以逗号分隔的形式输入。每个用户的用户ID就像输入数据库一样2,4,5..etc.I在我的模型中使用concat像这样

        public function shop_like($shop_id,$user_id,$logged_id)
        { 
            $this->db->where('user_id',$user_id);

            $this->db->where('shop_id', $shop_id);
            $this->db->set('review_like', 'review_like+1', FALSE);
            $where = "CONCAT('like_user_id', ',','".$logged_id."')"; 
           // $where = CONCAT(like_user_id,'".$logged_id."');
            $this->db->set('like_user_id', $where);
            $this->db->set('review_like', 'review_like+1', FALSE);
            $this->db->update('shop_reviews',$data);
          }

每个喜欢,like_user_id字段包含插入的值,如此CONCAT(like_user_id,',',' 7')这是问题

我想要现有的逗号分隔值和喜欢用户的用户ID

plzz更正了concat的语法

2 个答案:

答案 0 :(得分:2)

如果要更新列,请使用set()而不是where子句:

$this->db->set("like_user_id", "CONCAT( like_user_id, ',".$logged_id."' )", false);

答案 1 :(得分:0)

使用以下代码

    public function shop_like($shop_id,$user_id,$logged_id)
    { 
        $this->db->where('user_id',$user_id);

        $this->db->where('shop_id', $shop_id);
        $this->db->set('review_like', 'review_like+1', FALSE);
        $where = "CONCAT(like_user_id, ',','".$logged_id."')"; 
        $this->db->set('like_user_id', $where, false);
        $this->db->set('review_like', 'review_like+1', FALSE);
        $this->db->update('shop_reviews',$data);
      }