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