sqlsrv_fetch_array не получает первую строку запроса select - PullRequest
0 голосов
/ 16 октября 2019

мой запрос на выборку:

$query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' ";
$result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true));

Мой код цикла:

if($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) != Null){                               
   while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC))
   {
      echo $row['SERVER_NAME'];
      echo "\n";
   }
}

и пробовал тоже:

if( sqlsrv_fetch( $result ) === false) {
      die( print_r( sqlsrv_errors(), true));
}                   
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC))
{
     echo $row['SERVER_NAME'];
     echo "\n";
}

Нет ошибки. Но пока цикл пересекает первую существующую строку.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

наконец я удалил, если условие из моего code.it работает нормально. Окончательный код:

 $query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' "; 
 $result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true)); 

 while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) {
      echo $row['SERVER_NAME'];
      echo "\n"; }
0 голосов
/ 16 октября 2019

удалите условие if, потому что вы уже получили свою первую запись, когда вызываете это if($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) != Null)

   while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
   {
      echo $row['SERVER_NAME'];
      echo "\n";
   }

. Возможно, вы захотите использовать это вместо.

if($result=== true)
{
   while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
   {
      echo $row['SERVER_NAME'];
      echo "\n";
   }
}
...