2012-12-09 49 views
0

我想为我的网页做一个搜索引擎。 我有几个表在我的MySQL数据库,我想他们 结合时用户带复选框的简单php 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和IM试图如果某个复选框被选中,如何在SQL查询中包含某些 搜索。 我可以在这里有很多选择。例如,如果没有选中复选框, 如果您想搜索那些在线的iff,我该如何进入第二个表格?

我希望你明白我的意思。我真的希望有人能帮我 ,并给我一个PHP查询的的工作示例。

Cheerz!

+0

你应该规范化数据库以第三种形式http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/3/然后简单地写一个例子取决于复选框,您的查询中“在线= 1”等。 –

回答

1

首先,你必须检查哪些复选框被选中。然后,您必须根据该信息使用PHP编写MySQL查询。您必须在每个复选框中考虑需要检查的信息。如果你的数据库编写得很好,很少有两个选项相互影响的问题。如果信息位于用户表中,则只需要将行写入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."%'"; 
+0

有什么方法可以与您联系?如果您有兴趣,我希望您能够帮助我解决问题,并且我可以支付给您。 我已经找到了无处不在的stackoverflow找到一个联系信息,但我无法找到任何,我不知道是否okey在这里写东西,但我会做它无论如何,如果它不正确,请删除这篇文章。 – Mensur

+0

不知道正确的,但我有Gmail作为tuomo.m.makela。但我不会做任何大事。 –

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