【发布时间】:2014-09-28 09:34:52
【问题描述】:
我目前正在开发一个社交网站 显示登录用户的帖子,包括他/她的朋友的帖子 我已经成功地创建了脚本以显示所有帖子 登录用户的所有好友。然后把它们放在一个会话中。然后得到所有 使用 in_array() 发帖;
MY DB SCHEMA
person_tbl
pr_id
pr_name
post_tbl
po_id
po_message
po_prid (reference pr_id )
friend_tbl
fr_id
fr_from_prid
fr_to_prid
SAMPLE DATA
pr_id pr_name
1 Jeniffer
2 Dale
3 Melissa
po_id po_prid po_message
1 2 Post by Dale
2 2 Post by Dale 2
3 1 Post by Jen
4 3 Post by Melissa
fr_id fr_from_prid fr_to_prid
1 1 2 // Jennifer and Dale were friends
这是我的代码。
$LOGIN_USER_ID = 1 // e.g id of login user ( person_tbl pr_id in database)
unset( $_SESSION['friends'] );
$_SESSION['friends'] = array();
$frdt = ( get all friends by LOGIN USER ); // from database
foreach( $frdt as $fkey => $fval ) { // get all friends
$fr_from = $fval['fr_from_prid'];
$fr_to = $fval['fr_to_prid'];
if( $LOGIN_USER_ID != $fr_from ) {
$_SESSION['friends'][] = $fr_from;
}
if( $LOGIN_USER_ID != $fr_to ) {
$_SESSION['friends'][] = $fr_to;
}
}
$_SESSION['friends'][] = $LOGIN_USER_ID; // include login user id in friends session
// e.g display of id of friend ( 2, 3 and 1 ) 1 for login user.
$friends_of_user = $_SESSION['friends'];
$post_tbl = get_all_post();
foreach( $post_tbl as $key => $val ) {
$id = $val['po_id'];
if( in_array( $po_prid, $friends_of_user ) ) {
// DISPLAY ALL POST
}
}
就像我说的,我已经成功获取所有帖子。但是,我想要的是在加载页面时限制帖子,然后如果页面向下滚动,它将像 facebook 样式一样加载其他帖子。简而言之,我想要的只是选择帖子限制 0、20,然后如果用户向下滚动限制 20、40,然后选择 20、60 等等。是否可以仅使用 sql 查询而不执行会话之类的操作来获取帖子?提前致谢。
【问题讨论】: