循环以获取用户数据

时间:2016-03-15 04:43:29

标签: php codeigniter

  

我不能把真正的代码放在这里,因为它很长并且很难   解释

我在数据库中有用户表,我在数据库中也有数据表。

因此,要获取用户数据,我将传递user_id作为参数。像这样:

public function get_user_data($user_id) {

}

但是。我每次“请求”只能获得1个数据。 (继续阅读)

public function user_data() {
   $getUsers = $this->db->get('users');
   foreach($getUsers->result_array() as $user)
   {
      $data =  $this->get_user_data($user->ID);
      var_dump($data); // Only return 1 data;
   } 
}

但是,我想有办法“绕过”这个,但我不知道。我在思考问题。

正如我所说,我想“绕过”这个,并且能够发送多个用户ID,我的真实功能默认不接受,不能更改。

提前致谢!

3 个答案:

答案 0 :(得分:0)

替换

foreach($getUsers->result_array() as $user)
{

$data =  $this->get_user_data($user->ID);

var_dump($data); // Only return 1 data;
}

到这个

foreach($getUsers->result_array() as $user)
{
$data[] =  $this->get_user_data($user->ID);    
}
var_dump($data); 

答案 1 :(得分:0)

如果您的目标是向该功能发送更多数据,您总是需要对您的功能进行签名更改,如下所示:

 function get_user_data() {
      $args = func_get_args();    
      /** now you can access these as $args[0], $args[1] **/
 }

或者

function get_user_data(...$user_ids) {         
      /** now you can access these as $user_ids[0], $user_ids[1] **/
}
// Only higher version of PHP

但我不确定你将如何处理返回的数据。

编辑:是的,然后在函数中,您可以收集数组中的数据并从函数返回一组数据。

答案 2 :(得分:0)

如果您可以将功能从where更改为where_in,我认为您将获得一个简单的解决方案。

public function get_user_data($user_ids)
{
     // your db code 
     $this->db->where_in('ID',$user_ids); //replace where with where_in
}


public function user_data() 
{
    $getUsers = $this->db->get('users');
    foreach($getUsers->result_array() as $user)
    {
        $user_ids[] =  $user->ID;
    } 
    $this->get_user_data($user_ids);
 }