Существует множество вероятных проблем с этим:
1) Вы проверили, что ваш запрос действительно возвращает строки?
2) Вы дважды зацикливаете свои данные (два while( $row = sqlsrv_fetch_array...
цикла), что бесполезно или неэффективно. Предложение
3) the do...while ( sqlsrv_next_result($stmt) );
также должно быть ненужным, так как fetch_array будетзнать, когда они доходят до конца данных, и у вас есть только один набор результатов, поэтому вам не нужно перемещаться между ними
4) вы выводите необработанные данные так же, как и JSON, поэтомуесли вы сделаете ajax-вызов этого сценария, он потерпит неудачу, потому что ответ будет частично содержать не-JSON данные
Я думаю, этого будет достаточно, чтобы получить некоторые разумные данные:
include('connect.php');
$sql = "SELECT * FROM items";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}
$json = array();
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
$json[] = $row;
}
echo json_encode($json);