PHP:在一个表和另一个表中搜索

时间:2010-09-09 17:15:59

标签: php mysql

我正在制作一个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的当前用户。)

希望这更容易理解,如果不清楚,请发表评论。

3 个答案:

答案 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");