只有朋友才能看到墙更新
Posted
技术标签:
【中文标题】只有朋友才能看到墙更新【英文标题】:wall updates can be seen only by friends 【发布时间】:2014-12-24 01:01:47 【问题描述】:我正在创建一个墙系统,您可以在其中发布索引页面上的更新,并且我希望这些帖子只能被用户的朋友看到,我几乎让我的代码工作但我仍然有一个问题,但在我之前如果有更好的方法,请提及我的问题,请与我分享,我将向您展示我的代码
首先我有两个代码表
'my_friends' : 'id' ,'username','friend'
'statues' : 'p_id','post','f_name','userip','date_created'
此代码在 post.php 中,然后它将包含在索引页面中
//Check for user's friends
$check = mysql_query("select * from `my_friends` where `username` = '".$username."' order by `id` desc ");
//Get users friends
while($get_users_friends = mysql_fetch_array($check))
$show_more_button = 1;
$result = mysql_query("SELECT *,
UNIX_TIMESTAMP() - date_created AS TimeSpent FROM `statues` WHERE `f_name` = '".mysql_real_escape_string(strip_tags($get_users_friends["friend"]))."' ");
while($row = mysql_fetch_array($result))
$comments = mysql_query("SELECT *,
UNIX_TIMESTAMP() - date_created AS CommentTimeSpent FROM comments where post_id = ".$row['p_id']." order by c_id asc"); ?>
<div class="friends_area" id="record-<?php echo $row['p_id']?>">
<label style="float:left" class="name">
<b><?php echo $row['f_name']; ?></b><br>
<span>
</span><br>
<em><?php echo $row['post'];?></em>
<br clear="all" />
代码不正确,它只向一个朋友显示帖子提要,用户的第一个添加的朋友,换句话说,sql $result = mysql_query("SELECT *,
UNIX_TIMESTAMP() - date_created AS TimeSpent FROM
statuesWHERE
f_name= '".mysql_real_escape_string(strip_tags($get_users_friends["friend"]))."' ");
选择所有雕像只有一个朋友,当我在sql前写echo mysql_real_escape_string(strip_tags($get_users_friends["friend"])),'<br>';
时,它会显示所有朋友,但是当我在sql中使用它时却没有,请帮忙
【问题讨论】:
【参考方案1】:这里有一些想法可能对你有帮助
-
不要使用
mysql_*
已弃用的函数,而是使用 PDO
类
如果您不需要表中的全部信息,请不要查询 *
表名是statues
首先完成后,您的变量 $result 将仅保存最后一个朋友数据查询,因为它会被下一步的迭代覆盖(使用 $result[] =
)
汇总来自 $get_users_friends 的信息,将您的查询重写为 SELECT p_id, post, f_name, UNIX_TIMESTAMP() - date_created AS TimeSpent FROM statues WHERE f_name IN '.implode(',', $firends_name)
。
根本看不到你是否使用 $cmets 变量
$show_more_button = 1;根本不看它是否被使用。并且ofc会被下一个迭代步骤覆盖;
您的代码应类似于:
$check = mysql_query("select friend from `my_friends` where `username` = '".$username."' order by `id` desc ");
while($get_users_friends = mysql_fetch_array($check, MYSQL_ASSOC))
$result[] = $get_users_friends['friend'];
$friends_data_query = mysql_query("SELECT p_id, f_name, post,UNIX_TIMESTAMP() - date_created AS TimeSpent FROM `statues` WHERE `f_name` IN'".implode(',',$result)."'");
while($friends_data = mysql_fetch_array($friends_data_query,MYSQL_ASSOC))
但请确保将其重写为 PDO。因为现在很容易被注射。
【讨论】:
OP 正在询问隐私,并给出了这样一个问题的标题,它出现在搜索结果的顶部,但它没有提供任何细节,甚至没有在你的回答中给出问题的实际含义。以上是关于只有朋友才能看到墙更新的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 和 swiftUI,监听实时更新奇怪的行为怪异
VueJS - V-for 在数据更新后不会重新渲染,需要刷新页面才能看到更改