我想为我的网页做一个搜索引擎。 我的mysql数据库中有几个表,我想要它们 用户
时合并Table users
id name age country vip profile_image
1 nick 23 sweden 1 yes
2 michael 20 germany 0 no
3 laura 19 usa 1 yes
4 gary 33 china 1 yes
Table online
id user_id online
1 1 1
2 2 1
3 4 1
user_id连接到用户表中的id
Now i have checkboxes
[ ] Those which are online
[ ] Those which are vip
[ ] Those with profile image
我用PHP编写我的页面,我试图找出如何包含某些内容 如果选中某个复选框,则在sql查询中搜索。 我可以在这里有很多选择。如果未选中复选框,则为示例 iff on你想搜索那些在线的,我如何进入第二个表?
我希望你明白我的观点。我真的希望有人可以帮助我 并给我一个php&的工作示例SQL查询。
Cheerz!
答案 0 :(得分:1)
首先,您必须检查已选中的复选框。然后你必须根据这些信息用PHP编写MySQL查询。您必须在每个复选框中考虑需要检查的信息。如果您的数据库写得很好,那么很少有两个选项相互影响的问题。如果信息在users-table中,则只需要在where子句中写入行。如果您需要将表连接到users-table以获取您需要执行此操作的信息。这是一个例子
$query = "";
$query .= "SELECT users.* FROM users";
if ($include_online == 1) {
$query .= " LEFT JOIN online ON online.user_id = users.id";
}
$query .= " WHERE";
if ($include_vip == 1) {
$query .= " users.vip = 1 AND";
}
if ($include_image == 1) {
$query .= " users.profile_image = 'yes' AND";
}
if ($include_online == 1) {
$query .= " online.online = 1 AND";
}
$query .= " users.name LIKE '%".$search_string."%'";
答案 1 :(得分:0)
您需要形成类似以下内容的查询:
SELECT users.name, users.age, users.country
FROM users
LEFT JOIN online ON user.id = online.user_id
WHERE ((user.vip = 1) && (online.online = 1))