我正在制作一个autosuggesting函数,当用户在字段中写入内容时,它会将其存储在:
$queryString = $db->real_escape_string($_POST['queryString']);
我想让它在用户朋友之后自动提出。用户的朋友在users_friends,但只有朋友的ID。现在他们的full_name在表“users”中。我想在你搜索它时,应该在用户中使用full_name +检查它与用户的朋友。
正如您可能理解的那样,我不希望我的所有用户都知道彼此的ID,所以写“52”“233”,但搜索他们的full_name。
更新
我知道试过这样做: $ query = $ db-> query(“SELECT uf.bID 来自用户的朋友,users_friends uf WHERE uf.uID ='1'AND uf.type ='friend'AND friends.full_name LIKE'$ queryString%'LIMIT 10;“ );
从用户朋友中选择bID,其中userid为1并且是朋友。
现在我开始看到一些我认为的结果。当我写一个我的朋友的full_name时,我得到了用户的id(存储在bID中的id)。现在我只需要在“users”中获取full_name,其中id = bID ..
table: users
id | full_name
table: users_friends
id | uID | bID
所有这些的结论(试图做出更好的总结,以便让你更好地理解:)
当您在搜索字段中输入例如Jack时,$ queryString现在是“jack”。然后它取“Jack”(用户中的full_name),抓住他的id(用户中的id),如果他在那里存在,然后将其与bID(在users_friends中)匹配,其中uID是$ USER; ($ user是登录id的当前用户。)
希望这更容易理解,如果不清楚,请发表评论。
答案 0 :(得分:1)
所以,正如我弄清楚的那样,你在$ USER中获得当前用户的id及其在$ queryString中的查询字符串,你想要的是基于$ queryString的用户朋友的名字,我是对的?
因此,假设数据库的模式与您一样:
table: users
id | full_name
table: users_friends
id | uID | bID
查看此查询是否适合您,然后:
SELECT users.full_name
FROM users INNER JOIN users_friends ON users.id=users_friends.uID
WHERE bID=$USER AND users.full_name LIKE '$queryString%'
LIMIT 10;
$ USER和$ queryString是你的变量。
答案 1 :(得分:0)
您想一次读取多个表中的数据吗?
SELECT table1.id,table2.name FROM table1,table2 WHERE ...
我的英语不是很了解一切:D
答案 2 :(得分:0)
我不明白你的问题 但您可以使用此查询:
mysql_query("SELECT * FROM table_one, table_two WHERE table_one.id = table_two.id");