【问题标题】:get column with the same value on the database using codeigniter使用 codeigniter 在数据库中获取具有相同值的列
【发布时间】:2020-02-04 08:29:13
【问题描述】:

这是我的资源首先

正如您在我的数据库中看到的,我有一个 Referal_CodeReferral_Link

现在我在这里尝试的是,我想获得所有在Referal_Code 上具有相同值的Referral_Link

我知道我离我想要做的事情还很远,但我正在尽我最大的努力来完成这件事。 这是我到目前为止所尝试的

在我的model

public function get_same_referral_code()
{
   $this->db->select('referal_code');
   $this->db->where('referal_code', 'PoVsw0Epne');
   $query = $this->db->get('investor');
   if ($query->num_rows() > 0) {
       foreach ($query->result() as $row) {
            $data[] = $row;
       }
       return $data;
    }
}

还有我的controller

public function get_all()
{
    $data = array();
    $data['title'] = "Rewards";
    $data["data"] = $this->investor->get_all_investor();
    $data["get_all_flevel"] = $this->investor->get_all_first_level();
    $data["referrals"] = $this->investor->get_same_referral_code();
    $this->template->load('default_layout','contents','rewards',$data);
}

我在我的view 上这样称呼它

<?php 
    
    echo ($referrals[0][id]);
    echo ($referrals[0][firstname]);
    echo ($referrals[0][referal_code]);
    echo ($referrals[0][referral_link]);
     
?>

我的预期结果应该是这样的

谁能帮帮我。

编辑

我再次尝试过这种方式以获得我想要的东西。

首先我尝试获取所有referal_code

public function get_same_referral_code()
    {
        $this->db->select('referal_code');
        $query = $this->db->get('investor');
        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
    }

现在我将使用这个方法get_same_referral_code() 来检查是否 referral_linkreferal_code 上具有相同的值

public function get_same_referral_link()
    {
        $this->db->select('referral_link');
        $this->db->where('referral_link','get_same_referral_code();');
        $query = $this->db->get('investor');
        if($query->num_rows() > 0)
        {
            foreach($query->result() as $row)
            {
                $data[] = $row;
            }
            return $data;
        }
    }

但问题是我现在遇到了这个错误

消息:为 foreach() 提供的参数无效

【问题讨论】:

    标签: php jquery mysql codeigniter


    【解决方案1】:

    我认为子查询会对你有所帮助

    $SQL= "SELECT * FROM tableName WHERE referal_code EXISTS (SELECT DISTINCT Referral_Link FROM tableName)";
    $query = $this->db->query($SQL);
    return $query->result_array();
    

    $SQL= "SELECT * FROM investor WHERE referral_link IN (SELECT DISTINCT referal_code FROM investor)";
    $query = $this->db->query($SQL);
    return $query->result_array();
    

    【讨论】:

    • 您好,先生。我更新了我的问题,并且有一个编辑部分。
    • 我认为你所做的和我的概念相同,但是你的代码复杂度更高。我认为使用子查询比使用 2 功能更好。为什么当你得到更难的方法时选择更难的方法。
    • 先生,我怎样才能在我的视图中显示它?
    • 因为如果我尝试foreach($refs as $g) {echo $g-&gt;referal_code;},我会收到此错误消息:尝试获取非对象的属性“referal_code”
    • 我不认为它会起作用,因为子句 in/exists 需要单列来比较,如果你想回显名字,你可以在主查询中选择而不是在子查询中选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多