Maison > Questions et réponses > le corps du texte
J'ai 4 bureaux de vente et une fois que les 4 bureaux de vente reçoivent 20 leads, seul le bureau de vente numéro 4 devrait recevoir les leads restants pour la journée. J'ai besoin d'aide pour créer une condition permettant de vérifier si les bureaux de vente 1 à 4 ont chacun reçu 20 prospects, puis de suivre évidemment les instructions pour continuer
J'interroge d'abord la base de données pour vérifier mon compteur (oui, je sais que cela peut être plus compact et effectué dans une boucle)
$sales_office= 1; $sql = $conn->prepare("SELECT LeadsReceivedToday FROM Lead_Counter WHERE SalesOffice=?"); $sql->execute([$sales_office]); $result = $sql->fetch(); $sales_office1_count = $result['LeadsReceivedToday']; $sales_office= 2; $sql = $conn->prepare("SELECT LeadsReceivedToday FROM Lead_Counter WHERE SalesOffice=?"); $sql->execute([$sales_office]); $result = $sql->fetch(); $sales_office2_count = $result['LeadsReceivedToday']; $sales_office= 3; $sql = $conn->prepare("SELECT LeadsReceivedToday FROM Lead_Counter WHERE SalesOffice=?"); $sql->execute([$sales_office]); $result = $sql->fetch(); $sales_office3_count = $result['LeadsReceivedToday']; $sales_office= 4; $sql = $conn->prepare("SELECT LeadsReceivedToday FROM Lead_Counter WHERE SalesOffice=?"); $sql->execute([$sales_office]); $result = $sql->fetch(); $sales_office4_count = $result['LeadsReceivedToday'];
Lorsque j'exécute cette logique, elle ne fonctionne pas comme prévu ? Une fois que sales_office = 1 atteint 20 leads, ils seront transférés directement au bureau des ventes 4 ?
if ($sales_office1_count != 20 && $sales_office2_count != 20 && $sales_office3_count != 20) { //distribute leads to sales office 1-4 in order of 1-4 } else { //only send leads to sales office no 4 }
P粉7926739582024-04-03 09:03:57
Votre vérification logique actuelle pour tous les comptes de bureau, vous devez vérifier chaque bureau individuellement.
if ($sales_office1_count < 20 || $sales_office2_count < 20 || $sales_office3_count < 20) { //distribute leads to sales office 1-4 in order of 1-4 } else { //only send leads to sales office no 4 }
De plus, vous pouvez améliorer la lisibilité de votre code en utilisant des tableaux :
$officesLeadsCount = [1 => 0, 2 => 0, 3 => 0, 4 => 0]; foreach ($officesLeadsCount as $number => $value) { $sql = $conn->prepare("SELECT LeadsReceivedToday FROM Lead_Counter WHERE SalesOffice=?"); $sql->execute([$number]); $result = $sql->fetch(); $officesLeadsCount[$number] = $result['LeadsReceivedToday']; } if ($officesLeadsCount[1] < 20 || $officesLeadsCount[2] < 20 || $officesLeadsCount[3] < 20) { //distribute leads to sales office 1-4 in order of 1-4 } else { //only send leads to sales office no 4 }