PHP - Sentencias preparadas PROBLEMAS con ARRAY

 
Vista:
sin imagen de perfil

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por Richard (9 intervenciones) el 19/07/2017 06:48:33
Saludos, tengo el siguiente código js que funciona a medias cuando solicito un solo array de registro de la base de datos en MariaDB que al retornar un solo registro todo anda bien, al momento de devolver varios varios registros en un array se genera el siguiente error Error

CÓDIGO JS (con el cual solicito registros al pasar por obj = JSON.parse(respuesta); se genera dicho error mostrado en la imagen)

1
2
3
4
5
6
7
8
9
10
11
12
function datos_a() {
  var fecha = $("#fecha").val();
  var usuario = $("#usuario").val();
if (fecha == ""){
  alertify.error("Ingrese FECHA y USUARIO para balance");
}else{
  $.post("../modulos/balance.php", {fecha: fecha, usuario: usuario}, function(respuesta){
  obj = JSON.parse(respuesta);
  console.log(respuesta);
  });
}
};

CÓDIGO PHP con sentencias preparadas. Que retorna el array.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$fecha = $_POST['fecha'];
$usuario = $_POST['usuario'];
$cero = 0;
if (isset($fecha)) {
try{
	$consulta = $con->prepare("SELECT comision FROM operaciones WHERE fecha = ? AND codusuaro = ?");
	$consulta->bind_param('ss', $fecha, $usuario);
        $consulta->execute();
       $consulta->store_result();
    if ($consulta->num_rows===0){
    	echo json_encode($cero);
    }else{
    	$consulta->bind_result($comision);
    	while ($consulta->fetch()){
        $respuesta = array("comision" => $comision);
		echo json_encode($respuesta)
    	}
    }
    $consulta->close();
}catch(Exception $error){
    echo $error->getMessage();
	}
};
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por xve (6935 intervenciones) el 19/07/2017 11:50:17
Hola Richard, el problema es que devuelve dos json en vez de uno... en vez de devolver esto:
1
{clave1:valor1}{clave2:valor2}
tienes que devolver:
1
{clave1:valor1, clave2:valor2}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por Richard (9 intervenciones) el 19/07/2017 14:00:20
Gracias por la respuesta.
Por favor que parte del código tengo que modificar para obtener un solo Json del array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por kip (877 intervenciones) el 19/07/2017 21:33:09
Hola, intentalo asi:

1
2
3
4
while ($consulta->fetch()){
    $respuesta[] = array("comision" => $comision);
}
echo json_encode($respuesta);

De esa forma recibiras algo asi:

1
[{comision: 67}, {comision: 78}]

Pruebalo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por Richard (9 intervenciones) el 24/07/2017 01:50:11
Gracias Kip.

Luego de batallar varias noches me di cuenta que el error fue por que el echo json_encode($respuesta) se encontraba dentro del WHILE
1
2
3
4
while ($consulta->fetch()){
	$respuesta = array("comision" => $comision);
	echo json_encode($respuesta) //causante del error estando dentro del while crea doble Json
}

Cuando lo correcto es:
1
2
3
4
while ($consulta->fetch()){
    $respuesta[] = array("comision" => $comision);
}
echo json_encode($respuesta);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Sentencias preparadas PROBLEMAS con ARRAY

Publicado por Richard (9 intervenciones) el 19/07/2017 21:03:19
Gracias por la respuesta.
Por favor que parte del código tengo que modificar para obtener un solo Json del array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar