Inicio » Blog »

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.

Generar JSON desde una consulta MYSQL

Suscríbete a nuestro canal en Youtube

Suscríbirse

Convertir 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:

  1. Configurar la conexión a MySQL
  2. Crear una consulta SQL
  3. Procesar los resultados con PHP
  4. Convertir los datos a JSON
  5. 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

  1. Crea una base de datos llamada mi_base_de_datos.
  2. 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');
    Guarda el código PHP en un archivo (por ejemplo, get_json.php).
  3. 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.

0 descargas

Para descargar el código inicia sesión o crea una cuenta

Iniciar Sesión

Compartir link del tutorial con tus amigos

Preguntas para generar JSON con PHP

...

1. ¿Qué extensión de PHP se usa comúnmente para conectar a MySQL en este tutorial?

2. ¿Qué función establece la conexión a la base de datos en el ejemplo?

3. ¿Qué hace la función mysqli_query()?

4. ¿Qué función PHP convierte un arreglo a formato JSON?

5. ¿Qué encabezado HTTP indica que la respuesta es JSON?

6. ¿Qué hace mysqli_fetch_assoc() en el contexto del tutorial?

7. ¿Qué opción de json_encode() mejora la legibilidad del JSON?

8. ¿Qué sucede si la conexión a MySQL falla en el código del tutorial?

9. ¿Qué función cierra la conexión a la base de datos?

10. ¿Por qué es importante cerrar la conexión a MySQL?


MVC PHP y MySql Página Web

USD 10.00

Descarga del código fuente

MVC PHP y MySql Página Web

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú