0

也许我没有正确考虑这一点,但我有一张公司表:

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>';

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

4

2 回答 2

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>';

不知道我理解对不对...

于 2013-09-25T22:36:57.793 回答
0

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

您可以添加复选框/单选按钮以提供city或之间的选择name

如果您不想这样做,那么您知道用户在搜索什么。但是,您可以运行两个查询,一个用于city然后另一个用于name. 如果你得到结果,你至少会知道它们来自哪里。

于 2013-09-25T21:53:56.983 回答