Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Generar respuestas de consultas PHP en formato JSON

Hola, te mostraré como generar una respuesta de una consulta php, en formato json. El formato json es similar a un arreglo (array) que contiene información. Suele ser usado en el lenguaje JavaScript, incluso lo hemos usado sin saber, por ejemplo cuando hacemos una petición Ajax, la estructura es formato json.

El formato json también es usado en algunas bases de datos, como mongoDB que crea arreglos en éste formato para guardar información que luego puede ser mostrada. Un ejemplo de formato json sería:
/* Ejemplo JSON 1 */

pelota: {
    tamaño: 'grande',
    color: 'verde'
}

/* Ejemplo JSON 2 */

persona: {
     nombre: 'Mortadelo',
     apellido: 'García',
     edad: '36',
     teléfono: '02410040021',
     familia: {
          esposa: 'Mercedes',
          hija: 'Luciernaga',
          hijo: 'Rigoberto',
          mascota: 'Pedro'
    },
    profesion: 'Astronauta'
}
Bien, más o menos así se muestra una información escrita en formato JSON. Y esto mismo se puede hacer con PHP gracias a una función de PHP llamada json_encode(). Para ello, solo se debe hacer un arreglo (array) y la función se encargará de lo demás.
<?php
	$arreglo = array();
	$arreglo['pelota'] = array(
		'tamano'=>'grande',
		'color'=>'verde'
	);
	
	echo json_encode($arreglo);
?>
En caso de querer hacerlo dinámico, la forma como conseguí hacerlo es la siguiente.
<?php
	/* Connection */
	$hostname = 'localhost';
	$username = 'root';
	$password = '';
	$database = 'base';
	
	$connection = new mysqli($hostname,$username,$password,$database);
	
	$sql = sprintf("SELECT * FROM table");
	$query = $connection->query($sql);
	
	$arreglo = array();
	
	while($rows = $query->fetch_array()) {
		
		$arreglo []= array(
					'id' => $rows['id'],
					'name' => $rows['name'],
					'category' => $rows['category']
					);
	}
	
	echo json_encode($arreglo);
	
?>
Extrayendo de la tabla 'table', los valores de la columna 'id', 'name' y 'category', de cada fila.

6
Puntos
4889
Visitas
0
Resp
Por Jose hace 106 meses
Experto Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate