Convertir SQL a JSON en PHP

Alfredo
Sígueme!
Últimas entradas de Alfredo (ver todo)
JSON
Convertir SQL a JSON con PHP

¿Qué es un fichero JSON?

Viene de JavaScript Object Notation (JSON) y es un formato estándar abierto basado en tipo texto que sirve para codificar y mostrar datos estructurados de un servidor (backend) a una aplicación web (frontend). El formato JSON es fácil de leer y escribir para los humanos.

Hace lo mismo XML…

Pues sí, hace los mismo. Tanto ficheros JSON o ficheros XML se pueden usar para recibir datos de un servidor a una aplicación web. Pero vamos a ver con profundidad una breve diferencia entre JSON y XML

Similitudes entre JSON y XML

  • Son autodescriptivos, es decir, que el código es legible por humanos.
  • Son jerárquicos, almacenan valores dentro de valores respetando un rango.
  • Pueden ser analizados y utilizados para muchos lenguajes de programación.
  • Se pueden recuperar con un XMLHttpRequest (Peticiones a http y https)

Diferencias de JSON con XML

  • No usa la etiqueta final.
  • Es más corto.
  • Es más rápido de leer y escribir.
  • Puede usar matrices.
  • Puede ser analizado por una función estándar de JavaScript (XML debe ser analizado con un analizador XML).

¿Por qué JSON es mejor que XML?

  • XML es mucho más difícil de analizar que JSON.
  • JSON se analiza en un objeto JavaScript listo para usar.
  • Para aplicaciones AJAX, JSON es más rápido y fácil que XML:
    • XML:
      • Obtiene un documento XML.
      • Usa el DOM para recorrer el documento.
      • Extrae valores y los almacena en variables.
    • JSON:
      • Obtiene una cadena JSON.
      • Recorrer la cadena JSON.

Vamos a crear nuestro JSON

SQL

Primero lo que tenemos que hacer es preparar nuestra consulta SQL. Además, en el caso de asociar varias tablas, es mejor utilizar alias para todos los campos. Así diferenciamos sin problemas qué campo y tabla queremos mostrar. Voy a mostrar la siguiente consulta de ejemplo:

SELECT idtienda,nombre,direccion,cp,ciudad,provincia,cif,telefono,email,paginaweb 
FROM tiendas

PHP

El siguiente paso es tener los datos de nuestro proveedor de Hosting (o de nuestro servidor local) y los rellenamos en el código (dentro de la función conectar()).

Conexión con la base de datos (bd.php)

<?php
//Función para conectarnos con la BBDD 
function conectar(){
    // Rellenamos todos los datos para conectarnos a la BBDD
    $x=new mysqli(
        "", // URL
        "", // Usuario
        "", // Clave
        "" // Nombre 
    );
    //En caso de haber un error de conexión a la BBDD...
    if ($x->connect_errno){
        //Salimos de la conexión con el error
        die ("Error: ".$x->mysqli_connect_errno().$x->mysqli_connect_error());
        exit(); 
    }
return $x;
}
?>

Vamos a generar nuestro fichero JSON (json.php)

Lo primero que tenemos que indicar al servidor, es que se trata de un fichero JSON con
header('Content-Type: application/json');

Nos conectamos a la Base de Datos y vamos a recoger los datos de nuestra consulta SQL.

En lugar de mostrarlo en pantalla todas las filas de los registros, lo almacenamos en un Array:
$sqlArray["data"][].

En el último apartado, vamos a poder elegir dos opciones
1- mostrar la codificación del Array en formato JSON.
2- Guarda en el servidor la codificación del Array en un fichero con formato JSON.

<?php
// Indicamos que este documento va a ser tipo JSON
header('Content-Type: application/json');
session_start();

// Incluímos nuestro fichero bd.php para conectarnos a la BBDD.
include_once("func/bd.php");

// Nos conectamos a nuestra Base de Datos
$c=conectar();
mysqli_set_charset($c,"utf8");

// Indicamos nuestra query
$consulta=$c->query("SELECT idtienda,nombre,direccion,cp,ciudad,provincia,cif,telefono,email,paginaweb FROM tiendas");

// Si la consulta está mal formulada, saltará error
if(!$consulta){
    die("Error en la consulta SQL");
}

// Recorremos las filas del resultado de la query y lo metemos en un array
while($sql=$consulta->fetch_assoc()){
    $sqlArray["data"][]=$sql;    
}

$mostrarJSON=true; // true: mostrará los datos JSON en php | false: guardará el fichero json en un fichero .json 
if($mostrarJSON){
    echo json_encode($sqlArray);
}else{
    $listaTiendas = "json/listaTiendas.json";
    $data = json_encode($sqlArray); 
    
    // Ojo, deberemos de tener creada la carpeta 'json'
    if ($fp = fopen($listaEmpleos, "w")){
    fwrite($fp, $data);
    }
    fclose($fp);
}
?>

¡Y ya tenemos nuestro fichero JSON! Si estás interesado en cómo crear un fichero XML, te recomiendo que eches un vistado a este POST ➜ https://lacodigoteca.com/jquery/mostrar-datos-sql-en-html/

Alfredo

Desarrollador web de profesión (.NET, jQuery, JavaScript y SQL Server). Amante del fútbol y los videojuegos. Escribo en este blog sobre temas de programación que me parecen interesantes y que quiero compartir con todo el mundo.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies