获取表包含用户标识的行

时间:2013-04-10 15:07:37

标签: php mysql

我有一个包含4列id,用户,文本和日期的表。

我正在尝试获取“user”包含许多userid之一的行。那里可以有一个到无限用户ID。

用户ID的示例

"4, 5, 23"

“用户”列的示例

"4, 12, 44"

基本上我正在尝试创建一个状态更新系统,只有用户的朋友才能看到状态更新,有点像facebook和twitter。

2 个答案:

答案 0 :(得分:5)

您不应该有一个列来存储多个用户ID。创建一个表并引用它然后查找将很简单。

答案 1 :(得分:1)

如果我理解你的问题,你想把它分成多个表。

包含id,userid,文本和日期的状态表。

具有ID,用户名等的用户表(由您决定)。

具有id,userid,friendid的友谊表。 (友谊的两个条目,你可以做friend1和friend2,但这意味着每个查询都要检查两个字段)。

最后一张桌子是基于两种方式友谊的需要!所以Facebook的约定与推特相反,但可能没有后续的约定。

然后,您将显示来自用户(与登录用户)有友谊的用户的更新。

  

SELECT s.text,s.date,u.username,s.userid FROM status s INNER JOIN username u ON s.userid = u.id INNER JOIN friendship f ON f.friendid = s.userid WHERE f.userid ='登录用户ID'按照s.date DESC LIMIT 10订购

将LOGGED IN USER ID更改为当前登录用户的用户ID。这通常使用会话变量设置。

LIMIT 10将显示最新的10个状态更新!

然后显示文本和日期以及用户名链接到其个人资料的用户名(如果适用)!