【发布时间】:2022-01-22 05:58:48
【问题描述】:
我有 3 个不同的邮政编码区域,由 3 个推销员负责, 例如: 销售员 1 覆盖邮政编码区:AL、AD、DS 等...销售员 2 覆盖邮政编码区:CD、DD、KK 等...销售员 3 覆盖邮政编码区 LL、PL 、MM等……
我想更新Quotes 表列quSalesman,其中companies 表中的邮政编码与上述提到的三个区域之一匹配。
我目前正在这样做
$allcoPostcodes = $db1->query("SELECT coPostcode FROM companies WHERE coPostcode = '$coPostcode'");
$coPostcodoPurp = $db1->getval("SELECT coPostcode FROM companies WHERE ( coPostcode LIKE 'AL%' OR coPostcode LIKE 'BN%' OR
coPostcode LIKE 'CT%' OR coPostcode LIKE 'CM%' OR
coPostcode LIKE 'CO%' OR coPostcode LIKE 'CB%' OR
coPostcode LIKE 'CB%' OR coPostcode LIKE 'DA%' OR
coPostcode LIKE 'GY%' OR coPostcode LIKE 'HP%' OR
coPostcode LIKE 'IP%' OR coPostcode LIKE 'JE%' OR
coPostcode LIKE 'LU%' OR coPostcode LIKE 'ME%' OR
coPostcode LIKE 'MK%' OR coPostcode LIKE 'NR%' OR
coPostcode LIKE 'NN%' OR coPostcode LIKE 'PO%' OR
coPostcode LIKE 'PE%' OR coPostcode LIKE 'RH%' OR
coPostcode LIKE 'RM%' OR coPostcode LIKE 'SG%' OR
coPostcode LIKE 'SL%' OR coPostcode LIKE 'SS%' OR
coPostcode LIKE 'TN%')", "coPostcode");
if ($allcoPostcodes == $coPostcodeRed) {
$db1->query("UPDATE quotes SET quSalesman = '90' WHERE quId > '133366' AND quCoId = coId AND coPostcode = $coPostcodeRed");
} else if ($allcoPostcodes == $coPostcodeOran) {
$db1->query("UPDATE quotes SET quSalesman = '91' WHERE quId > '133366' AND quCoId = coId AND coPostcode = $coPostcodeOran");
} else if ($allcoPostcodes == $coPostcodoPurp) {
$db1->query("UPDATE quotes SET quSalesman = '77' WHERE quId > '133366' AND quCoId = coId AND coPostcode = $coPostcodoPurp");
} else {
$db1->query("UPDATE quotes SET quSalesman = '16' WHERE quId > '133366' AND quCoId = coId");
}
注意区域coPostcodeRed和coPostcodeOran几乎相同,只是在coPostcodoPurp中看到的邮政编码区域变化
上述内容目前有效,这意味着它更新了表中的数据,但是它只运行 else 语句并且没有正确检查 if 或 else if 语句,或者至少在我看来,这就是我认为的所有值quSalesman equal 设置为 16,如果我删除 else 语句,它们设置为 77,这是最后一个 else if,我不确定为什么会发生这种情况,显然我检查了邮政编码,其中一些应该设置为 90 和一些到 91 等等......
【问题讨论】:
标签: php sql if-statement