带有复选框的简单php mysql搜索引擎

时间:2012-12-09 16:02:52

标签: php mysql sql checkbox

我想为我的网页做一个搜索引擎。 我的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!

2 个答案:

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