Foros del Web » Programando para Internet » PHP »

Resultado de un SELECT a JSON

Estas en el tema de Resultado de un SELECT a JSON en el foro de PHP en Foros del Web. Hola, quisiera que algun lama caritativa me ayudara un poquito, quiero trasnfomar un resultado de una consulta SQL a JSON y no lo he logrado ...
  #1 (permalink)  
Antiguo 23/08/2009, 16:12
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Resultado de un SELECT a JSON

Hola, quisiera que algun lama caritativa me ayudara un poquito, quiero trasnfomar un resultado de una consulta SQL a JSON y no lo he logrado correctamente, puedo hacerlo con un campo de la consulta pero no logro hacerlo para abarcar todos los campos, mi codigo es el sigte:

Código:
	include ("conexion.php");
	$consultaSQL = "SELECT * FROM presupuesto";
	$resultado=mysql_query($consultaSQL);
	if($resultado) {
		$i=0;
		while ($fila = mysql_fetch_assoc($resultado)){
			$presupuesto[$i]=$fila['descripcion'];
			$i++;
		}
	}

	echo toJSON($presupuesto);

	function toJSON($array){
		$json=''; $i=0;
		$json='{';
		$json.='total:'.count($array).',';
		$json.='data:[';
		foreach($array as $key=>$value){
			$json.='{id:'.$key.',descripcion:"'.$value.'"}';
			$i++; if($i<count($array)) $json.=',';
		}
		$json.=']';
		$json.='}';
		return $json;
	}
imagino que en la parte que marqué con negrita es donde debo asignar los otros campos pero he probado de varias formas y no he podido

cualquier luz se agradece
  #2 (permalink)  
Antiguo 23/08/2009, 19:28
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Resultado de un SELECT a JSON

Por si a alguien le sirve lo resolvi de la siguiente manera:

Código:
	$consultaSQL = "SELECT * FROM presupuesto";
	$resultado=mysql_query($consultaSQL);


    if($resultado) {
        $total = mysql_num_rows($resultado);
        $json='';
		$json='{';
		$json.='total:'.$total.',';
		$json.='data:[';
        $i=0;
        while ($fila = mysql_fetch_row($resultado)){
            $json.='{id:'.$i.',';
            $j=0;
            while ($j<mysql_num_fields($resultado)){

                $campo = mysql_field_name($resultado, $j);

                $json.= $campo.':'.$fila[$j];

                $j++;

                if($j<mysql_num_fields($resultado)){

                    $json.=',';

                }

            }
            $i++;
            $json.= '}';

        }
        $json.=']';
		$json.='}';

        echo $json;

    }
se que es un poco rebuscado y posiblemente haya una solución mas simple, pero despues de probar tantas cosas nada me resultaba exactamente como lo necesitaba.

incluso use el json_encode(), pero no me daba el resultado que deseaba, creo que es porque mi servidor tiene php 5.2 y el json _encode viene mejorado en la version 5.3

Última edición por tokkaido; 23/08/2009 a las 19:34
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:06.