Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodeIgniter中JOIN语句的PHP问题_Php_Codeigniter_Join_Foreach - Fatal编程技术网

CodeIgniter中JOIN语句的PHP问题

CodeIgniter中JOIN语句的PHP问题,php,codeigniter,join,foreach,Php,Codeigniter,Join,Foreach,我有两个表:“事件存档”和“演示用户”。在事件表中,每个事件都有一个唯一的ref_id值、一个demo_id值(参与事件的演示者的用户id)和一个client_id值(参与事件的客户的用户id)。在演示表中,每个演示者都有一个唯一的id值,该值对应于事件表中的demo\u id 我想做的是列出所有参与某个客户所做活动的示威者(从演示表中)。我正在使用会话数据获取特定客户端的用户ID 假设client_id的值为4,我想列出所有共享了一个事件(即共享了表中的一行)的个人演示者。我目前正在我的Cod

我有两个表:“事件存档”和“演示用户”。在事件表中,每个事件都有一个唯一的
ref_id
值、一个
demo_id
值(参与事件的演示者的用户id)和一个
client_id
值(参与事件的客户的用户id)。在演示表中,每个演示者都有一个唯一的
id
值,该值对应于事件表中的
demo\u id

我想做的是列出所有参与某个客户所做活动的示威者(从演示表中)。我正在使用会话数据获取特定客户端的用户ID

假设
client_id
的值为4,我想列出所有共享了一个事件(即共享了表中的一行)的个人演示者。我目前正在我的CodeIgniter模型中使用:

function demos($mid){    
   $this->db->select('demo_users.*');
   $this->db->from('demo_users');
   $this->db->join('events_archive','events_archive.demo_id = demo_users.id');
   $this->db->where('events_archive.client_id',$mid);
   $this->db->limit(10);
   $this->db->order_by('users_demonstrators.products_sold','asc');
   $demos = $this->db->get(); 
   foreach($demos->result() as $demo){
      echo $demo->first_name;
   }
}

但它并没有单独列出示威者,而是一次又一次地重复他们。它没有列出演示器A、演示器D、演示器F等。它列出了演示器A、演示器A、演示器A等。有人知道我哪里出错了吗?

而不是
$this->db->select('demo_users.*)
试试
$this->db->select('*')
而不是
echo$demo->first\u name尝试
变量转储($demo)

我的猜测是,
演示器A
事件档案中有许多记录。您将两个表连接起来,因此,
events\u archive
中的每个匹配记录都会与
demo\u用户的列一起添加。这就是为什么会有多个
demo\u用户。*
-但是记录有不同的
事件存档。*


你可能想试试。

我添加了
$this->db->distinct()并且它工作得非常好。谢谢