也许我没有正确考虑这个问题,但我有一个公司表格:
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>';
有没有办法根据他们搜索的内容显示正确的结果?
如果您只有一个搜索框,您如何知道用户正在寻找什么?
您可以添加复选框/单选按钮以提供city
或name
之间的选择。
如果您不想这样做,那么您不知道用户正在搜索什么。但是,您可以运行两个查询,一个用于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>';
不知道我是否理解正确...