- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个社交网站,例如 Facebook。就像某些部分一样。我使用了 PHP 和 MySQL。我的索引页面有问题,我会在其中显示我 friend 的所有最新评论操作。
让我扩展数据库。
表注释:
comment_id
content
datetime
author_id //who created this comment
profile_id //the user_id of the owner profile which this comment commented on.
parent_id //the comment id which is parent of this comment id. if the parent_id = 0 , so this comment is the main comment.
表用户:
user_id
...some user info fields...
餐 table 友谊
user_id // who added another as friend.
friend_id // who was added as friend by another.
status // the status of this friendship, 0 is invited and 1 is alreay friend (accepted)
首先,我会得到我所有的 friend ID。
$query = "select DISTINCT friend_id as friend from friendship where user_id = ".$user_id." and status = 1
union
select DISTINCT user_id as friend from friendship where friend_id = ".$user_id." and status = 1
";
然后我会把所有的 friend id放到一个数组中。
foreach($total_friends as $each_friend){
$all_friend_id[] = $each_friend['friend'];
}
现在我有一个 friend ID 数组。然后我试图获得有限的最新评论。无论是子评论还是主评论,我都会收到有限的最新评论。
"select * from comments where author_id IN ('".implode("','",$all_friend_id)."' order by datetime desc limit 0 , 20";
现在我有一个已排序的最新子评论和主评论数组(按日期时间排序),如果这是一个子评论,我将获取该评论的主评论,然后获取所有子评论。如果这是一条主要评论,我将获得所有子评论。
最后我会得到一个包含所有主要和次要评论的数组,这些评论按开头排序。这是一个图像演示。 http://rongcon.info/demo/abc/newst.PNG
当一个主评论中有多个最新的子评论时,就会出现重复主评论的问题。但我可以轻松修复它。
我的目标达成了。但是当我试图通过 AJAX 获取“旧评论”时出现的问题。
问题出在较旧的评论中,有时我会在第一个请求中显示的主评论中得到一个子评论。所以我会显示一个重复的主要评论,这是一个我需要修复的错误!
我尝试了 2 种方法来修复,但我无法处理所有错误。
但是当我试图获得越来越多的旧评论时。显示的主要评论 ID 的数量会很长,我担心这会对性能造成很大的影响。
但是我只能在我的 friend 资料中获取最新的主评论和子评论,而无法获取有我 friend 最新子评论的主评论。我又摔倒了!
所以我要为这个页面寻求一个最佳解决方案。
最佳答案
可能不是选择所有评论(包括子评论),而是首先只选择父评论...(其中 parent_id=0)。
select * from comments where parent_id=0 and author_id IN ('".implode("','",$all_friend_id)."' order by datetime desc limit 0 , 20
然后foreach parent,去获取子评论,这样当从ajax中获取旧的评论时,你不会得到没有父评论的子评论片段。
虽然它可能会更慢......
关于php - 如何在社交网站上获取我 friend 的最新评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061751/
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
假设您有一个拥有十亿用户的社交网络。在每个用户的页面上,您想要显示该用户的 friend 数、 friend 的 friend 等等,最多五度。友谊是相互的。计数不需要立即更新,但它们应该是精确的。
public void notMyFriend(Student student1) { System.out.println("Friends who are not my frien
我有如下3个表格 用户 - id integer primary_key - user_name friend - id autoincrement primary_key - user1 integ
如何从 Friends 表中获取 friend 列表以及我 friend 的 friend 数(不包括我的 friend 数) friend 表"tbl_users_friends 字段 1:id字段
我的 MySQL 表结构是这样的。 USER int id varchar username FRIEND_LIST int user_id int friend_id 对于每个 friend 关系,
假设 a,b,c 和 b,d,e 和 c,f,g 和 a,e,g,h 是 friend 。所以 获取共同好友 b/w a&b: MATCH (me:User {username:'a'}) -[r:F
我正在开发“可能的 friend ”功能。我需要显示所有不是我 friend 的 friend 的 friend ,也不要发送我或没有我的待处理请求 FRIENDSHIPS user_id frien
如果两个用户是 friend ,我在“ friend ”表中有一个条目,如下所示: table: friends ------------------------ uid1
我有一个 friend 表,用于跟踪数据库中的关系 - 我将一个查询与子查询放在一起,该子查询从 friend 的 friend 那里获取个人资料信息 我的 friend 表如下所示 - id 双向出
我想结交 friend 的 friend 的 friend 。我得到了结果,但我不确定我的查询是否正确。我正在使用嵌套选择。 我的问题是: 查询是否正确? 我如何使用 join 执行此查询? 这是我的
假设我有一个包含 friend 属性的用户对象。这个 friends 属性是其他用户对象的数组,因此是你的 friend 。找到你 friend 的 friend 但不是你 friend 的最快算法是
我想结交我的 friend 以及 friend 的 friend ,但仅限于二级 friend 我的表结构是这样的 user_id friend_user_id 1 2 1
为了了解使用 Neo4J 建立 friend 关系的优势,我在 MySQL 数据库上创建了一张用于 Persons 的表(“Persons”,20900 个数据集): id | name --
假设我有一个名为“ friend ”的表,对于每个友谊,我添加两个条目。例如,如果用户 1 和 2 是 friend ,我们将有: uid1 uid2 ---------- 1 2 2 1
在我的图形数据库中,我有 Twig 和树叶。分支可以“包含”叶子,分支可以“包含”分支。 如何使用 Gremlin 找到与给定分支直接或间接相关的所有叶子? 我让这个在 Cypher 中工作: STA
我正在尝试使用 iPhone Facebook SDK 获取我 friend 的 friend 列表。我尝试了一种使用 FQL 和 Graph API 的方法,但在这两种情况下我都遇到了错误: "Ca
我有这个 MySQL 表: 假设我以用户 1 的身份登录,正在浏览用户 2 的个人资料。由于我们是共同的 friend (1 是 2 的 friend ,2 是 1 的 friend ),我需要回应“
我想得到我 friend 的 friend 不是我 friend 的 friend 。我有一张这样的 table :用户 friend (idUser,idUserFriend) 我在想这样的事情:
我有这个 Cypher 查询... match (p:Person{userid:8432})-[r:friends_with]->(p1:Person)-[r2:friends_with]->(p2
我是一名优秀的程序员,十分优秀!