Maison  >  Questions et réponses  >  le corps du texte

php utilise l'opérateur NOT pour évaluer les conditions

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粉618358260P粉618358260173 Il y a quelques jours291

répondre à tous(1)je répondrai

  • P粉792673958

    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
    }

    répondre
    0
  • Annulerrépondre