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


PHP search different fields in a table and show respective results

也许我没有正确考虑这个问题,但我有一个公司表格:

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

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

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

您可以添加复选框/单选按钮以提供cityname之间的选择。

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

你为什么不将结果的两个字段与搜索文本进行比较,以了解匹配它的内容:城市或名称。像这样:

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

不知道我是否理解正确...