8 abril, 2025
Generar JSON desde una consulta MYSQL
Json es un formato que nos permite transportar datos de forma rápida y sencilla, generaremos JSON a partir de una consulta a la base de datos de 3 tablas.

Suscríbete a nuestro canal en Youtube
SuscríbirseConvertir datos de una base de datos MySQL en formato JSON es una tarea común en el desarrollo web, especialmente para aplicaciones que necesitan enviar información a frontend o APIs. En este tutorial, te guiaré paso a paso para que aprendas a realizar una consulta MySQL con PHP y transformar los resultados en un archivo JSON de forma sencilla y eficiente.
Índice:
- Configurar la conexión a MySQL
- Crear una consulta SQL
- Procesar los resultados con PHP
- Convertir los datos a JSON
- Manejar errores y optimizar
Este tutorial te permitirá generar JSON dinámicamente desde tu base de datos, ideal para proyectos como APIs REST, aplicaciones móviles o dashboards interactivos. ¡Empecemos!
Paso 1: Configurar la Conexión a MySQL
Primero, necesitas conectar tu script PHP a una base de datos MySQL. Usaremos la extensión mysqli (también puedes usar PDO si prefieres). Aquí tienes un ejemplo básico:
php
// Parámetros de conexión
$host = "localhost"; // Host de la base de datos
$user = "root"; // Usuario de MySQL
$password = ""; // Contraseña (vacía por defecto en localhost)
$database = "mi_base_de_datos"; // Nombre de tu base de datos
// Crear la conexión
$conn = mysqli_connect($host, $user, $password, $database);
// Verificar la conexión
if (!$conn) {
die("Error de conexión: " . mysqli_connect_error());
}
Nota: Asegúrate de reemplazar los valores de $user, $password y $database con los de tu entorno. Si usas un servidor remoto, ajusta $host también.
Paso 2: Crear una Consulta SQL
Define una consulta SQL para obtener los datos que deseas convertir a JSON. Por ejemplo, supongamos que tienes una tabla llamada usuarios con las columnas id, nombre y email. La consulta sería:
sql
SELECT id, nombre, email FROM usuarios;
En PHP, ejecutamos esta consulta usando mysqli_query:
php
// Definir la consulta
$sql = "SELECT id, nombre, email FROM usuarios";
// Ejecutar la consulta
$result = mysqli_query($conn, $sql);
// Verificar si la consulta tuvo éxito
if (!$result) {
die("Error en la consulta: " . mysqli_error($conn));
}
Paso 3: Procesar los Resultados con PHP
Los resultados de la consulta deben almacenarse en un arreglo PHP para luego convertirlos a JSON. Usaremos mysqli_fetch_assoc() para recorrer las filas y guardarlas en un arreglo:
php
// Arreglo para almacenar los datos $data = [];
// Recorrer los resultados while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; // Agregar cada fila al arreglo }
En este punto, $data contendrá un arreglo asociativo con los datos de la tabla usuarios. Por ejemplo:
php
[
["id" => 1, "nombre" => "Juan Pérez", "email" => "juan@example.com"],
["id" => 2, "nombre" => "María López", "email" => "maria@example.com"]
]
Paso 4: Convertir los Datos a JSON
PHP ofrece la función json_encode() para transformar el arreglo en un string JSON. Agreguemos esto al código:
php
// Convertir el arreglo a JSON
$json_data = json_encode($data, JSON_PRETTY_PRINT);
// Establecer el encabezado para indicar que la respuesta es JSON
header('Content-Type: application/json');
// Mostrar el JSON
echo $json_data;
JSON_PRETTY_PRINT: Opcional, hace que el JSON sea más legible con indentación.
- header(): Indica al navegador o cliente que la respuesta es un archivo JSON.
El resultado podría verse así:
json
[
{
"id": 1,
"nombre": "Juan Pérez",
"email": "juan@example.com"
},
{
"id": 2,
"nombre": "María López",
"email": "maria@example.com"
}
]
Paso 5: Manejar Errores y Optimizar
Es buena práctica manejar errores y cerrar la conexión a la base de datos. Aquí está el código completo con estas mejoras:
php
// Parámetros de conexión
$host = "localhost";
$user = "root";
$password = "";
$database = "mi_base_de_datos";
// Crear la conexión
$conn = mysqli_connect($host, $user, $password, $database);
// Verificar la conexión
if (!$conn) {
die(json_encode(["error" => "Error de conexión: " . mysqli_connect_error()]));
}
// Definir la consulta
$sql = "SELECT id, nombre, email FROM usuarios";
$result = mysqli_query($conn, $sql);
// Verificar la consulta
if (!$result) {
die(json_encode(["error" => "Error en la consulta: " . mysqli_error($conn)]));
}
// Arreglo para los datos
$data = [];
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
// Convertir a JSON
$json_data = json_encode($data, JSON_PRETTY_PRINT);
// Verificar si json_encode falló
if ($json_data === false) {
die(json_encode(["error" => "Error al generar el JSON: " . json_last_error_msg()]));
}
// Establecer encabezado y mostrar el JSON
header('Content-Type: application/json');
echo $json_data;
// Cerrar la conexión
mysqli_close($conn);
Optimizaciones:
- Si no hay resultados, el JSON será un arreglo vacío ([]), lo cual es válido.
- En caso de error, se devuelve un objeto JSON con un mensaje de error.
- La conexión se cierra con mysqli_close() para liberar recursos.
Ejemplo Práctico
- Crea una base de datos llamada mi_base_de_datos.
- Crea una tabla usuarios con este SQL:
sql
CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100), email VARCHAR(100) ); INSERT INTO usuarios (nombre, email) VALUES ('Juan Pérez', 'juan@example.com'), ('María López', 'maria@example.com');
- Sube el archivo a un servidor con PHP y MySQL (como XAMPP) y accede a él desde el navegador (ejemplo: http://localhost/get_json.php).
Leido 11745 veces | 1 usuarios
Descarga del código fuente PHP de Generar JSON desde una consulta MYSQL
Accede al código fuente esencial de nuestra aplicación en formato ZIP ó TXT. Ideal para desarrolladores que desean personalizar o integrar nuestra solución.
Opciones de descarga
- Usuarios Registrados: Inicia sesión para descarga inmediata.
- Nuevos Usuarios: Regístrate y descarga.
Preguntas para generar JSON con PHP
...