PHP搜索表中的不同字段并显示相应的结果

时间:2013-09-25 21:36:25

标签: php mysql search select distinct

也许我没有正确地思考这个问题,但我有一张公司表:

name
address
city
state
zip

我想搜索两个字段,名称和城市。

我的查询是:

SELECT DISTINCT    city, name 
FROM               companies 
WHERE              city 
LIKE               '%$search%' 
OR                 name 
LIKE               '%$search%'

,结果代码为:

echo '<a href="city.php?city=' . $results['city'] . '">' 
    . $results['city'] . '</a>';

现在,只有在此人搜索城市时才考虑这一点。如果有人搜索公司名称,如何让它显示页面?类似的东西:

echo '<a href="company.php?co=' . $results['name'] . '">' 
    . $results['name'] . '</a>';

有没有办法根据他们搜索的内容显示正确的结果?

2 个答案:

答案 0 :(得分:0)

如果您只有一个搜索框,您怎么知道用户在寻找什么?

您可以添加复选框/单选按钮,以便在cityname之间进行选择。

如果您不想这样做,那么知道用户正在搜索的内容。但是,您可以运行两个查询,一个用于city,另一个用于name。如果你得到了结果,你至少会知道它们的来源。

答案 1 :(得分:0)

为什么不将结果的两个字段与搜索文本进行比较,以了解与之匹配的内容:城市或名称。 类似的东西:

if($search === $results['city']) echo '<a href="city.php?city=' . $results['city'] . '">'. $results['city'] . '</a>'; elseif($search === $results['name'])
echo '<a href="company.php?co=' . $results['name'] . '">'. $results['name'] . '</a>';

不确定我是否理解正确...