查看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发送回来
任何帮助将不胜感激。
答案 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发送多个查询,但只构建一个查询,这将解决你的问题。