Tengo un Web Service que está conectado a una base de datos MSSQLServer, funciona bien, el único problema que tengo es que cuando ejecuto alguna Query que tenga que mostrar más de un registro, solo me muestra el primero. Por ejemplo le digo que quiero todos los registros en la base de datos que contengan "papel" en el nombre, pero solo muestra el primero de los registros que encuentra, necesito que muestre todos los que encuentre con esa característica. Adjunto el código del WS
ini_set('display_errors', '1');
$number_of_posts = $_GET['prod_pos'];
$picker_option = $_GET['picker'];
$format = 'json';
$serverName = "******";
$uid = "sa";
$pwd = "*******";
$connectionInfo = ["UID" => $uid, "PWD" => $pwd, "Database" => "SADOC"];
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn) {
} else {
echo "Unable to connect.</br>";
die(print_r(sqlsrv_errors(), true));
}
$tsql = "SELECT inv_inventario.inv_cod, inv_inventario.inv_des_lar, inv_inventario.inv_cba, sal_saldos.sal_can,
sal_saldos.sal_cos, gai_ganancia_x_inventario.gai_pre
FROM ((INV_INVENTARIO INNER JOIN SAL_SALDOS ON inv_inventario.inv_cod = sal_saldos.inv_cod)
INNER JOIN GAI_GANANCIA_X_INVENTARIO ON inv_inventario.inv_cod = gai_ganancia_x_inventario.inv_cod) where inv_inventario." . $picker_option . " like '%" . $number_of_posts . "%'";
$stmt = sqlsrv_query($conn, $tsql);
if ($stmt === false) {
echo "Error in executing query.</br>";
die(print_r(sqlsrv_errors(), true));
}
$posts = [];
while ($post = sqlsrv_fetch_array($stmt)) {
$posts = [$post];
}
$final_res = json_encode(['producto' => $posts]);
if ($format == 'json') {
header('Content-type: application/json');
echo $final_res;
}
$stmt = null;
$conn = null;