我正在尝试修改现有的脚本,只会将包含特定区号的行输出到已分配特定区号的用户。
示例:
users表中名为designed_areas的列将包含不同的数据,如:CM,SS,RH
当一个潜在客户进来时,我正在使用substr来检测邮政编码的前两个字符。
$trimmed = substr("$postcode", 0, 2);
$viewLeads=mysqli_query($con,"SELECT * FROM leads WHERE team = '$getID->team' ORDER BY id DESC");
while($lead=mysqli_fetch_object($viewLeads)){
我想扩展mysqli_query并从数据库中选择所有潜在客户,其中邮政编码的前2个字符与任何用户named_areas匹配,这些用户是逗号分隔的。
这样,他只能看到他可以处理的领域的潜在客户。
有人可以帮忙吗?
答案 0 :(得分:1)
您可以尝试使用以下查询:
SELECT * FROM leads WHERE team = '$getID->team' and designed like '%{$trimmed}%' ORDER BY id DESC;
Php代码:
$viewLeads=mysqli_query($con,"SELECT * FROM leads WHERE team = '$getID->team' and designed like '%{$trimmed}%' ORDER BY id DESC;");
答案 1 :(得分:1)
你可以用正则表达式来做。例如,在MySQL中,如果你的postal_code表看起来像这样:
PersonID Zips
1 11111,22222,33333
2 22222,12121,32323
你想要的人有邮政编码,如33 *
SELECT PersonID FROM `postal_code` WHERE zips rlike '33[0-9]{3}'
这假定所有邮政编码都是5位数,而您总是使用2位数进行搜索。它基本上是说“找到前两位数为33的5位数”或者你的搜索号是什么 PHP代码可能如下所示:
$search = 33 ;
$sql = "SELECT PersonID FROM `postal_code` WHERE zips rlike '$search[0-9]{3}'" ;
无论逗号,空格等如何,此解决方案都可以找到匹配项。您的PHP代码中不需要进一步处理。