PHP - Problemas con PHP PDO y MySQL para generar array

 
Vista:
sin imagen de perfil

Problemas con PHP PDO y MySQL para generar array

Publicado por Carlos (6 intervenciones) el 12/01/2017 00:28:35
Estimados.
Acudo a ustedes ya que he intentado resolver este tema sin éxito. El resultado de mi consulta genera 2 arreglos que al pasar a JSON se transforma en un JSON no válido por tener dos elementos raíz.
En la query, tag es un array que paso de un select multiple de un formulario. Este array lo toma correctamente (puedo generar tablas HTML y demás), el problema está en el array. Lo necesito para generar una tabla pivote con él (el código para generar el crosstab/pivote funciona correctamente).
Estaré generando erróneamente el array?
A continuación el código:
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
26
27
28
29
30
31
32
33
34
<?php
	foreach($_POST['tag'] as $tag) {
	$sql = $pdo->prepare("SELECT nomtag, Fecha, Valor, medida
			FROM planta, tag, valor
			WHERE valor.tag_idtag = tag.idtag AND tag.planta_idplanta = planta.idplanta AND Fecha >= :desde AND Fecha <= :hasta AND idtag = :tag ORDER BY Fecha asc");
 
	$sql->execute(['desde' => $desde, 'hasta' => $hasta, 'tag' => $tag]);
 
	$resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
 
		//echo '<pre>';
		//print_r($resultado);
		//echo '<pre>';
 
		//Genero Crosstab
		$new_resultado = Array();
		foreach( $resultado as $v )
		{
			if(!isset( $new_resultado[$v["nomtag"]][$v["Fecha"]] ))
		        {
			$new_resultado[$v["nomtag"]][$v["Fecha"]] = 0;
			}
			$new_resultado[$v["nomtag"]][$v["Fecha"]] += $v["Valor"];
		}
 
		//echo '<pre>';
		//print_r($new_array);
		//echo '<pre>';
		$json_array = json_encode($new_resultado);
		print($json_array);
	}//Fin recorrer array tag	   
 
	Database::disconnect();
?>
La impresión del array resultado es el siguiente:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
Array
(
    [0] => Array
        (
            [nomtag] => Flujometro Entrada PG TK
            [Fecha] => 2016-01-01
            [Valor] => 1234567
            [medida] => m3
        )
 
    [1] => Array
        (
            [nomtag] => Flujometro Entrada PG TK
            [Fecha] => 2016-01-02
            [Valor] => 2223124
            [medida] => m3
        )
 
)
Array
(
    [0] => Array
        (
            [nomtag] => Entrada Recolectora PG TK
            [Fecha] => 2016-01-01
            [Valor] => 9876544
            [medida] => m3
        )
 
    [1] => Array
        (
            [nomtag] => Entrada Recolectora PG TK
            [Fecha] => 2016-01-02
            [Valor] => 9988112
            [medida] => m3
        )
 
)
Lo ideal para que el JSON sea correcto es que genere un array consecutivo 0 1 2 3 y no dos arrays (0 1 y 0 1).
Espero puedan ayudarme.
Saludos cordiales.
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