添加其他用户?贴子
要将其他用户的贴子添加到一个用户的时间表(timeline)上
,只需重用之前编写的一些代码
。例如
,现在已经知道如何获得当前用户正在追随的用户的列表
。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。
现在只需在index.php文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户ID列表,从他们的时间表中获取一定数量的贴子—这里不需要所有的贴子,只需5个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。
首先,为
show_posts()
函数增加一个limit参数,将它的值默认为0。如果limit大于0,则将一个限制值添加到用于检索贴子的
SQL语句中。另外要做的是将
$userid
参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给
SQL语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。
清单18.更新
show_posts()
,以接受一个用户数组
functionshow_posts($userid,$limit=0){ $posts=array(); $user_string=implode(',',$userid); $extra="andidin($user_string)"; if($limit>0){ $extra="limit$limit"; }else{ $extra=''; } $sql="selectuser_id,body,stampfromposts whereuser_idin($user_string) orderbystampdesc$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;}
现在回到index.php文件,将不止一个用户ID传递给
show_posts()
,如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用
array_keys()
取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的ID),最多则包含当前用户ID和该用户追随的每个用户的ID。
清单19.将一个用户数组传递给
show_posts()
函数
$users=show_users(添加其他用户?贴子
要将其他用户的贴子添加到一个用户的时间表(timeline)上,只需重用之前编写的一些代码。例如,现在已经知道如何获得当前用户正在追随的用户的列表。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。
现在只需在index.php文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户ID列表,从他们的时间表中获取一定数量的贴子—这里不需要所有的贴子,只需5个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。
首先,为show_posts()函数增加一个limit参数,将它的值默认为0。如果limit大于0,则将一个限制值添加到用于检索贴子的SQL语句中。另外要做的是将$userid参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给SQL语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。
清单18.更新show_posts(),以接受一个用户数组
functionshow_posts($userid,$limit=0){ $posts=array(); $user_string=implode(',',$userid); $extra="andidin($user_string)"; if($limit>0){ $extra="limit$limit"; }else{ $extra=''; } $sql="selectuser_id,body,stampfromposts whereuser_idin($user_string) orderbystampdesc$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;}
现在回到index.php文件,将不止一个用户ID传递给show_posts(),如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用array_keys()取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的ID),最多则包含当前用户ID和该用户追随的每个用户的ID。
清单19.将一个用户数组传递给show_posts()函数
___FCKpd___1
结束语
在本文中,您学习了如何构建一个简单的基于
PHP的微博客服务,该服务类似于Twitter和Facebook状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。
SESSION['userid']);if(count($users)){ $myusers=array_keys($users);}else{ $myusers=array();}$myusers[]=添加其他用户?贴子
要将其他用户的贴子添加到一个用户的时间表(timeline)上,只需重用之前编写的一些代码。例如,现在已经知道如何获得当前用户正在追随的用户的列表。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。
现在只需在index.php文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户ID列表,从他们的时间表中获取一定数量的贴子—这里不需要所有的贴子,只需5个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。
首先,为show_posts()函数增加一个limit参数,将它的值默认为0。如果limit大于0,则将一个限制值添加到用于检索贴子的SQL语句中。另外要做的是将$userid参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给SQL语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。
清单18.更新show_posts(),以接受一个用户数组
functionshow_posts($userid,$limit=0){ $posts=array(); $user_string=implode(',',$userid); $extra="andidin($user_string)"; if($limit>0){ $extra="limit$limit"; }else{ $extra=''; } $sql="selectuser_id,body,stampfromposts whereuser_idin($user_string) orderbystampdesc$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;}
现在回到index.php文件,将不止一个用户ID传递给show_posts(),如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用array_keys()取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的ID),最多则包含当前用户ID和该用户追随的每个用户的ID。
清单19.将一个用户数组传递给show_posts()函数
___FCKpd___1
结束语
在本文中,您学习了如何构建一个简单的基于
PHP的微博客服务,该服务类似于Twitter和Facebook状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。
SESSION['userid'];$posts=show_posts($myusers,5);
结束语
在本文中,您学习了如何构建一个简单的基于PHP的微博客服务,该服务类似于Twitter和Facebook状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。