【发布时间】:2017-01-01 01:57:45
【问题描述】:
有没有一种方法可以让我拥有一个名为“位置”的输入字段,并允许用户输入邮政编码或城镇名称来检索公司列表? 例如。布里斯托尔或 BS6 6NX
下面是我目前的表结构
企业:(带有示例数据)
id - 1
名称 - Apples
位置 - 布里斯托尔
邮编 - bs5 6nx
位置:(带有示例数据)
id - 1
姓名 - 布里斯托尔
邮政编码 - bs5 6
我目前的查询是:
$query = "
SELECT b.id, b.name, b.category, b.thumb_picture, b.location
FROM business b
LEFT JOIN locations l ON b.location = l.name
WHERE l.name = ".$dbh->quote($userLocation)."
OR l.postcode LIKE ".$dbh->quote($userLocation."%")."
GROUP BY b.name
ORDER BY b.date DESC";
目前仅适用于城镇名称。
更新:
How to detect an address or a postal code in a variable
似乎是一个解决方案,事先确定该字段是邮政编码还是城镇,然后根据结果可能有 2 个查询?一个搜索邮政编码栏,一个搜索城镇?
【问题讨论】:
-
你为什么使用子查询?
-
您对上述示例数据的预期输出是什么?
-
在给定搜索词的用户中列出企业名称。因此,例如,如果我输入“Bristol”或“BS6 4NQ”。将显示与此列匹配的所有商家。