只有朋友才能看到墙更新

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 FROMstatuesWHEREf_name= '".mysql_real_escape_string(strip_tags($get_users_friends["friend"]))."' "); 选择所有雕像只有一个朋友,当我在sql前写echo mysql_real_escape_string(strip_tags($get_users_friends["friend"])),'&lt;br&gt;';时,它会显示所有朋友,但是当我在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,监听实时更新奇怪的行为怪异

如何限制WIKI系统的更新,加入审核功能

VueJS - V-for 在数据更新后不会重新渲染,需要刷新页面才能看到更改

cnpm私服搭建和发布包

Bigquery:我们应该在模式更新后等待多长时间才能流式传输数据?

向关系中插入新数据时如何更新tableView