ожидая, что цикл будет выполняться один раз, но это не так - PullRequest
0 голосов
/ 18 июня 2019

Я запрограммировал свою полную логику на PHP, и моя база данных находится в цикле запуска цикла sql-сервера, но когда я использую более одного запроса, мой цикл не дает желаемого результата, я не могу вернуться через sql-сервер, пытаясьошибка в локальном браузере, но это не помогает

после первого запроса я получаю различное название компании и города

co1 ci1, co1 ci2, co2 ci3, co3 ci4,

теперь я зацикливаюсь на приведенном выше результате запроса, чтобы получить каждого сотрудника отдельной компании и города

first query (distinct result)
{
while {
        second query(each employee of every distinct company )
         while{
                now applying 3 check through queries  on each employee
              }
       }
}

, применяя проверки, мой 2-й цикл выполняется более одного раза

$Conn_sis=sqlsrv_connect($ServerName,$ConnectionInfo);
$PSL = array("1", "2", "3");
if($Conn_sis)
{   
    if(($DistinctCompany=sqlsrv_query($Conn_sis,
        "SELECT dbo.WalkerItContacts.ConcatKey , 
         dbo.WalkerItContacts.CompanyName,
         dbo.WalkerItContacts.EmployeeCity,
         dbo.WalkerItContacts.EmployeeAddress1
         FROM dbo.WalkerItContacts
         GROUP BY dbo.WalkerItContacts.ConcatKey,
         dbo.WalkerItContacts.CompanyName,
         dbo.WalkerItContacts.EmployeeCity,
         dbo.WalkerItContacts.EmployeeAddress1
         HAVING count(distinct dbo.WalkerItContacts.CompanyName) = 1
         order by dbo.WalkerItContacts.CompanyName")) !== false)    
         {


        while($DistinctCompany_result = sqlsrv_fetch_object( $DistinctCompany ))
        {

            $DistinctCompanyEmployee = sqlsrv_query($Conn_sis,
                "SELECT *
                 from dbo.WalkerItContacts 
                 where dbo.WalkerItContacts.CompanyName ='$DistinctCompany_result->CompanyName' 
                 AND dbo.WalkerItContacts.EmployeeCity ='$DistinctCompany_result->EmployeeCity'
                 And dbo.WalkerItContacts.EmployeeAddress1 ='$DistinctCompany_result->EmployeeAddress1'");
            while($DistinctCompanyEmployee_result = sqlsrv_fetch_object($DistinctCompanyEmployee ))
            {
                $CCount = sqlsrv_query($Conn_sis,
                "SELECT * 
                 from dbo.WalkerElectedContacts
                 where dbo.WalkerElectedContacts.CompanyName='$DistinctCompanyEmployee_result->CompanyName' 
                 AND dbo.WalkerElectedContacts.EmployeeCity = '$DistinctCompanyEmployee_result->EmployeeCity'",array(), array( "Scrollable" => 'static' ));
                 $CCount_result = sqlsrv_num_rows($CCount);
                ;
                 if ($CCount_result >= 2)
                 {
                         echo "Error in retrieveing row count.";
                 }
                 else
                 {
                    $EmployeeTital = sqlsrv_query($Conn_sis,
                        "SELECT dbo.WalkerElectedContacts.EmployeeTitle            
                         from dbo.WalkerElectedContacts
                         where dbo.WalkerElectedContacts.CompanyName='$DistinctCompanyEmployee_result->CompanyName' 
                         AND dbo.WalkerElectedContacts.EmployeeCity = '$DistinctCompanyEmployee_result->EmployeeCity'");
                    while($EmployeeTital_result = sqlsrv_fetch_object($EmployeeTital))
                    {

                        if($EmployeeTital_result->EmployeeTitle === $DistinctCompanyEmployee_result->EmployeeTitle)
                        {
                            echo "same";
                        }
                        else
                        {

                            if(in_array($DistinctCompanyEmployee_result->PrioritySL, $PSL))
                            {
                                $InserQuery = sqlsrv_query($Conn_sis,"INSERT INTO dbo.WalkerElectedContacts(CompanyName, EmployeeCity,EmployeeTitle,EmployeeSeniorityLevel,PrioritySL) 
                                Values('$DistinctCompanyEmployee_result->CompanyName','$DistinctCompanyEmployee_result->EmployeeCity','$DistinctCompanyEmployee_result->EmployeeTitle','$DistinctCompanyEmployee_result->EmployeeSeniorityLevel','$DistinctCompanyEmployee_result->PrioritySL')");
                            }
                            else
                            {
                                echo"not";
                            }
                    }
                 }




            }

        }
     }
}

else
{
    die("query is problem");
}

я ожидаюво втором цикле проверьте каждого моего сотрудника и вставьте в новую таблицу, а затем перейдите к первому циклу для следующей отдельной компании

...