在我的当前项目中,我有一个像facebook这样的提要菜单。我需要显示来自tbl_posts,tbl_events,tbl_shares的提要。我在滚动时使用ajax分页一次加载10个项目。因此我需要一个查询来加载来自上述三个关于滚动表的最新FEDDS ,如何确定所提取的数据是事件,发布还是分享?
Ajax滚动按以下语句完成
仅考虑tbl_post
1)首先,我将使用限制
从tbl_posts获取10个最新帖子2)再次滚动我将获取接下来的10个项目并附加到ajax中的先前帖子。 这是通过单个查询
完成的但是现在我有tbl_posts,tbl_events,tbl_shares。因此我没有得到如何解决这个问题?
答案 0 :(得分:1)
也许你可以创建一个至少有4列的父表tbl_feeds:id,feedtype。子表id,timeflag。如:id:1 feedtype:shares子表id:1 timeflag:2014-7-25。
在页面上显示Feed的其他信息取决于您使用的技术: 1.将事件,共享和帖子放入缓存中,在需要时动态加载它们 2.将整个feed html保存在父表的第4列中 ..........
答案 1 :(得分:1)
您可以执行三个查询,然后将结果放入每个查询的数组中。
$post_result;
$share_result;
$events_result;
然后使用数组合并合并它们;
$final_array = array_merge($post_result, $share_result);
$final_array = array_merge($final_array, $events_result);
然后您将以下内容作为最终数组:
$final_array;
您还可以在将每个查询提取到自己的数组中时,为类型添加额外的字段:
$i = 0;
while($x = $stmt->fetch())
{
$post_result[$i] = $x;
$post_result[$i]['type'] = "post";
$i++;
}
注意$ i我为了额外的能力而添加的,这是明确的,能够分配和操纵当前的索引。