首先是我的资源
如您所见,在我的数据库中,我有一个Referal_Code
和Referral_Link
现在,我要在这里尝试获得的所有Referral_Link
在Referal_Code
上具有相同的值
我知道我离我想做的事还很遥远,但我正在尽力做到这一点。
这是我到目前为止尝试过的
在我的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_link
在referal_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()提供了无效的参数
最佳答案
我认为子查询将为您提供帮助
$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();
关于php - 使用codeigniter获取数据库上具有相同值的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58262852/