Возврат определенной строки из набора результатов с использованием PHP SQLSRV - PullRequest
0 голосов
/ 12 сентября 2018

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

Minutes, [6,15,44,12,15,14,9,5,4,11]
Hours, [41,5,28,7,5,4,19,8,25,6]
Weeks, [1,1,1,1,2,1,2,3,1,1]

Я могу вернуть все эти значения выше на экранеusing;

$result = sqlsrv_query($conn2, $sql, $params) or die( print_r( sqlsrv_errors(), true)) ;

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_NUMERIC) ) {
  echo $row[0].", ".$row[1]."<br />";
}   

И я могу установить минуты, часы и недели в переменные используя:

$row = sqlsrv_fetch($result, SQLSRV_SCROLL_FIRST);  
$v1 = sqlsrv_get_field( $result, 0);  
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);  
$v2 = sqlsrv_get_field( $result, 0);
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);  
$v3 = sqlsrv_get_field( $result, 0);  

Как мне получить массив из второго столбца в переменную?

1 Ответ

0 голосов
/ 13 сентября 2018

Я ответил на мой вопрос в моем комментарии выше!DOH!

Это массив, а не строка, поэтому, используя оригинальный код, мне просто нужно изменить его на:

$row = sqlsrv_fetch($result, SQLSRV_SCROLL_FIRST);  
$v1 = sqlsrv_get_field( $result, 0);
$v2 = sqlsrv_fetch_array( $result, 1);  
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);  
$v3 = sqlsrv_get_field( $result, 0);
$v4 = sqlsrv_fetch_array( $result, 1);  
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);  
$v5 = sqlsrv_get_field( $result, 0);
$v6 = sqlsrv_fetch_array( $result, 1);  

В окончательной версии автоматически увеличивается имя переменной в цикле while;

$i=0;    
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_NUMERIC) ) {
  ${'name'.$i} = $row[0]."<br />";     
  ${'value'.$i} = $row[1]."<br />";
  $i++;
}

$ name1, $ value1, $ name2, $ value2 и т. Д. До конца цикла.

...