【问题标题】:how to update sql table based on various criterias如何根据各种条件更新sql表
【发布时间】: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");
}

注意区域coPostcodeRedcoPostcodeOran几乎相同,只是在coPostcodoPurp中看到的邮政编码区域变化

上述内容目前有效,这意味着它更新了表中的数据,但是它只运行 else 语句并且没有正确检查 if 或 else if 语句,或者至少在我看来,这就是我认为的所有值quSalesman equal 设置为 16,如果我删除 else 语句,它们设置为 77,这是最后一个 else if,我不确定为什么会发生这种情况,显然我检查了邮政编码,其中一些应该设置为 90 和一些到 91 等等......

【问题讨论】:

    标签: php sql if-statement


    【解决方案1】:

    看看this是否不能解决你的问题。

    无论如何,如果您在检查条件之前打印您的 $coPostcodeRed 和其他人,您可以了解它是否与您认为的一样。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2012-10-03
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多