回复问题* Fetch all news and all comments
你真的认为这是最好的方式吗?
我还需要获取当前用户的所有新闻[authorId] => 99 示例
$news = array(
[0] = array(
[id]=>1,[authorId]=>99,[data]=>"Lorem Ipsum"
),
[1] = array(
[id]=>2,[authorId]=>99,[data]=>"Lorem Ipsum"
)
);
并获取此用户的所有评论 示例
$comments = array(
[0] = array(
[comId]=>1,[newsid]=>1,[authorId]=>99,[data]=>"bla bla bla bla"
),
[1] = array(
[comId]=>2,[newsid]=>1,[authorId]=>99,[data]=>"bla bla"
)
);
其他表用户
$users = array(
[0] = array(
[userId]=>99,
[userName]=>"User99"
)
);
之后
select * from news n left join users u on n.authorId = u.userId where n.authorId = 99
进入此选择推送选择获取评论
array(
[0] => array(
[id] => 1 // news' id
[userId] => 99,
[data]=>"Lorem Ipsum",
[comments] => array(
[0] => arra(
[comId] => 1 // comment's id
[userId] => 99
[data]=>"bla bla"
),
...
)
),
...
)
问题***(上)
第一个查询获取所有新闻文章并将它们放入数组中。第二个查询获取注释,并在每个新闻文章的结构中累积一个单独的数组。
但是如果这个查询和foreach两个数组同时运行10000次 例 10000刷新页面?
答案 0 :(得分:0)
您必须使用逻辑缓存
1)如果您获得许多记录并限制考虑分页查询结果
2)不同安排中每张表的单独信息
$user = array();
$comments = array();
3)使用foreach和array_merge
组合两个数组$merge = array();
$i=0;
foreach ($comments as $row) {
extract($row);
if(in_array($iduser, $user)):
$merge[$i] = $comments + $user;
endif;
$i++;
}
这是一个没有尝试过的伪代码也许应该做一些调整。我希望你能发球