在php函数中使用循环并使用JSON返回结果

时间:2013-12-21 13:50:19

标签: php mysql json

查看php函数,我有这样的场景:有多个IdUserfollow,每个id都必须在result2上传递,所有检索到的值必须合并并返回给Xcode

 function viewhome($IdUser){
    $result1 = query("SELECT * FROM follows  WHERE IdUser = '%s' ", $IdUser);
    $IUser = $result['result'][0]['IdUserfollow'];
    $result2 = query("SELECT * FROM photos WHERE IdUser = '%s' ORDER BY IdPhoto DESC LIMIT    50", $IUser);
    print json_encode($result2);
}

我该怎么办呢。

我播下了这个与我类似的问题Using a Loop Inside a Function,但我仍感到困惑。考虑到我的返回将使用JSON,我也不知道如何从第一个查询结果设置循环限制。是否有可能我必须做两个函数,第一个将返回重复次数,第二个将只有循环并返回结果?如果是,那么我如何结合两个结果 - 或者无论重复的价值是什么 - 并使用json发送回来

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以从第二个查询中收集所有检索数据到结果数组,如下所示:

 function viewhome($IdUser){
    $result1 = query("SELECT * FROM follows  WHERE IdUser = '%s' ", $IdUser);
    $IUser = $result['result'][0]['IdUserfollow'];
    $result = array();
    foreach ( $result['result'] as $data ) {
       $result[] = query("SELECT * FROM photos WHERE IdUser = '%s' ORDER BY IdPhoto DESC LIMIT    50", $data['idUserfollow']);
    }
    print json_encode($result); // all the results for each IdUserfollow from first query
}

但同样,我建议你不要向DB发送多个查询,但只构建一个查询,这将解决你的问题。