【发布时间】:2010-09-09 17:15:59
【问题描述】:
我正在制作一个自动提示功能,当用户在它存储的字段中写一些东西时:
$queryString = $db->real_escape_string($_POST['queryString']);
我希望它在用户朋友之后自动建议。用户的朋友在 users_friends 中,但只有朋友的 ID。现在他们的全名在“用户”表中。我想当你搜索它时应该在用户中寻找全名+检查它是否与用户成为朋友。
正如您可能理解的那样,我不希望我的所有用户都知道彼此的 id 如此写,例如“52”“233”,而是搜索他们的全名。
更新:
我知道尝试过这样做: $query = $db->query("SELECT uf.bID FROM 用户朋友,users_friends uf WHERE uf.uID = '1' AND uf.type = 'friend' AND friends.full_name LIKE '$queryString%' LIMIT 10;" );
它从用户朋友中选择bID,其中用户ID为1并且是朋友。
现在我开始看到一些我认为的结果。当我写一个我朋友的全名时,我得到了用户的 id(存储在 bID 中的 id)。现在我只需要在 id = bID 的“用户”中获取全名。
table: users
id | full_name
table: users_friends
id | uID | bID
所以总结这一切(试图做一个更好的总结,以便让你更好地理解:)
当您在搜索字段中输入例如 Jack 时,$queryString 现在是“jack”。然后它正在获取“Jack”(用户中的全名),获取他的 id(用户中的 id),如果他当然存在,然后将其与 uID 为 $USER 的 bID(在 users_friends 中)匹配; ($user 是当前登录用户的 id。)
希望这更容易理解,如果有不清楚的地方,请发表评论。
【问题讨论】:
-
您使用的是什么数据库? MySQL?
-
是的 mysql 和 php 编码