【发布时间】:2011-07-12 09:52:25
【问题描述】:
在我的网站上,我正在尝试编写一个类似于 facebook 和 twitter 时间线的功能,用户可以在其中“关注”另一个用户,并接收他们的“广播”。数据库表是:
**members**
--------
id
fullname
following
**broadcasts**
-----------
id
mem_id
broadcast (the content)
broadcast_date
members 表中的“following”是存储用户 ID 的 varchar 文本。因此,如果我关注用户 4 5 和 6 (4,5,6,) 将出现在以下列中。我的问题是,我从数据库中查询的内容只是从我关注的第一个用户那里检索“广播”,而没有其他用户。
$sql_broadcasts = mysql_query("
SELECT *
FROM members
JOIN broadcast
ON(broadcast.mem_id = members.following)
WHERE members.id=$id
ORDER BY broadcast_date DESC
LIMIT 10;
");
其中 $id 是 $_SESSION['id']。我已经盯着这段代码很久了,谁能发现我做错了什么?提前谢谢
【问题讨论】:
-
这个传说中的follower_array是什么?字段列表中未提及...
-
表格描述难以阅读。是否所有内容都在“|”的一侧应该在一张桌子上?更好的是使用 SQL 模式语句 (
CREATE TABLE) 来显示表结构。 Source code rules。正如 a'r 所提到的,您应该使用带参数的准备好的语句,而不是直接将值插入到语句中。准备好的语句更简单、更安全、更高效。 -
member.id 的类型是什么(整数或 varchar)?