Saltar al contenido
­čÜÇ Lacodigoteca.com

Convertir SQL a JSON en PHP

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/

A %d blogueros les gusta esto: