2013-04-10 69 views
0

如何制作类似Twitter的跟随系统?如果您关注某人,您将收到他们的推文。我有一个名为“用户”,“关注”和“职位”的数据库表。 users表保存我网站上的用户。以下显示了人员追随者,这个表格是这样设置的:'id,user_one,user_two'。 posts表中保存了唯一用户拥有的所有推文或帖子。如何制作类似Twitter的跟随系统

我有一个配置文件页面,为每个用户设置一个关注按钮。同时我还为用户提供了一条新闻提要,但在该新闻提要中,我需要它显示登录用户所关注的来自用户的帖子。因此,无论如何,我有一个用户关注他人并从他们的新闻提要接收该用户的帖子。

现在我did some research:他们的系统似乎不工作。我不断收到此错误:

Warning: implode() [function.implode]: Invalid arguments passed in function.php on line 12

SELECT 
    user_id, 
    body, 
    stamp 
FROM posts 
WHERE user_id in() 
ORDER BY stamp DESC 

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in function.php.

在这里这条线是假设,以帮助它在那里,当你遵循人,你将收到有鸣叫和东西

function show_posts($userid,$limit=0){ 
$posts = array(); 

$user_string = implode(',', $userid); 
$extra = " and id in ($user_string)"; 

if ($limit > 0){ 
    $extra = "limit $limit"; 
}else{ 
    $extra = '';  
} 

$sql = "select user_id,body, stamp from posts 
    where user_id in ($user_string) 
    order by stamp desc $extra"; 
echo $sql; 
$result = mysql_query($sql); 

while($data = mysql_fetch_object($result)){ 
    $posts[] = array( 'stamp' => $data->stamp, 
         'userid' => $data->user_id, 
         'body' => $data->body 
       ); 
} 
return $posts; 

}

我相信这段代码,应该显示来自其他用户的帖子,导致这个问题,但我不不知道为什么。

+0

看起来像你的SQL是无效的,并导致无效的数组,因此内爆不起作用。在'$ fsql = ..'之后键入'die($ fsql);'并告诉我们你的sql语句是什么.. – asifrc 2013-04-10 22:06:38

+0

我有这里的链接:http://www.ibm.com/developerworks/opensource/ library/os-php-twitter-interface/index.html?ca = dgr-lnxw9d&S_TACT = 105AGX59&S_CMP = grsitelnxw9d – artandmanga 2013-04-10 22:06:39

+0

@artandmanga mattedgod只是一个巨魔。他知道ibm,其他人也是如此,因此他的讽刺意味。 – asifrc 2013-04-10 22:08:11

回答

0

使用连接。例如:

select user_id, text from posts 
    inner join followings on posts.user_id = followings.followed_id 
    where followings.follower_id = :user_id; 

如果我可以推荐,请停止使用mysql_函数; they are deprecated,不应在较新的应用程序中使用。相反,我建议使用PDO

+0

哇哇谢谢谢谢你试试这个并回馈给你! @icktoofay – artandmanga 2013-04-11 04:05:53