<file_sep>REST_PAGINAACTUAL = 0;

$(document).ready(init);

function init(){
    cargarFront();
}

function cargarFront(){
    $.ajax({
        url: 'ajax/selectPlatos.php',
        type: 'POST',
        data: 'pagina='+REST_PAGINAACTUAL,
        success: function(datos){
            mostrarGaleria(datos);
        },
        error: function (){
            alert("adios");
        }
    });
}

function mostrarGaleria(datos){
    var galeria = $("#galeria-platos");
    galeria.empty();
    for (var i=0 in datos.platos) {
        $("<div class='plato-principal plato1'><div class='foto-plato' style='background-image: url(imagenes/"+datos.platos[i].fotos[0]+")'></div><div class='info-plato'><h3>"+datos.platos[i].nombre+"</h3><p>"+datos.platos[i].descripcion+" a un precio de "+datos.platos[i].precio+"€</p></div></div>").appendTo(galeria);
    }
         $(".paginacion").remove();
    var tr = document.createElement("div");
    var td = document.createElement("div");
    /*td.setAttribute("colspan", 5);*/
    td.classList.add("paginacion");
    td.innerHTML += "<a class='enlace' data-href='" + datos.paginas.inicio + "'>&lt;&lt;</a> ";
    td.innerHTML += "<a class='enlace' data-href='" + datos.paginas.anterior + "'>&lt;</a> ";
    if (datos.paginas.primero !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.primero + "'>" + (parseInt(datos.paginas.primero) + 1) + "</a> ";
    if (datos.paginas.segundo !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.segundo + "'>" + (parseInt(datos.paginas.segundo) + 1) + "</a> ";
    if (datos.paginas.actual !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.actual + "'>" + (parseInt(datos.paginas.actual) + 1) + "</a> ";
    if (datos.paginas.cuarto !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.cuarto + "'>" + (parseInt(datos.paginas.cuarto) + 1) + "</a> ";
    if (datos.paginas.quinto !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.quinto + "'>" + (parseInt(datos.paginas.quinto) + 1) + "</a> ";
    td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.siguiente + "'>&gt;</a> ";
    td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.ultimo + "'>&gt;&gt;</a> ";
    tr.appendChild(td);
    
    galeria.after(tr);
    
    $(".enlace").unbind("click");
    $(".enlace").on("click", cambiarPagina);
}
function cambiarPagina(){
    REST_PAGINAACTUAL = $(this).data("href");
    cargarFront();
}
<file_sep><?php

    header("Content-Type: application/json");
    require '../require/comun.php'; 
    $bd = new BaseDatos();  
    $modelo = new modeloPlato($bd);   
    $id = Leer::post("id");
    if($id==null){
        echo "{'error':-1}";
        exit();
    }
    $plato = $modelo->get($id);
    echo $plato->getJSON();
    $bd->closeConexion();


<file_sep><?php

    header("Content-Type: application/json");
    require '../require/comun.php'; 
    $bd = new BaseDatos();  
    $modelo = new modeloPlato($bd);   
    $idplato = Leer::post("idplato");
    $nombre = Leer::post("nombre");
    if($idplato==null){
        echo '{"error": -1}';
        exit();
    }
    
    $r = $modelo->deleteFoto($idplato, $nombre);
    
    echo '{"error": '.$r.'}';
    $bd->closeConexion();

<file_sep># restaurante
Carta web de un restaurante con AJAX
<file_sep>var REST_PAGINAACTUAL=0;

$(document).ready(init);

function init(){
    $(".cerrar-ventana").on("click", function(){
        cerrarVentana();
    });
    $("#btn-confirmar").on("click", llamadaPlatos);
    document.getElementById('archivos').addEventListener('change', handleFileSelect, false);
    $("#btn-insertar").on("click", function(){
        mostrarPanelVacio();
    })
    $("#btn-login").on("click", procesarLogin);
    $("#btn-salir").on("click", procesarSalir);
    procesarLogin();
    
}
function procesarSalir(){
    $.ajax({
        url: '../ajax/logout.php',
        type: 'GET',
        success: function(datos){
            portero(datos);
            //alert(datos);
        },
        error: function (){
            alert("adios");
        }
    });
}
function procesarLogin(){
    $.ajax({
        url: '../ajax/login.php',
        type: 'POST',
        data: 'login='+$("#login").val()+'&clave='+$("#clave").val(),
        success: function(datos){
            portero(datos);
            //alert(datos);
        },
        error: function (){
            alert("adios");
        }
    });
    
}
function portero(datos){
    //alert(datos.estado);
    if(datos.estado == "logueado"){
        cargarPlatos(REST_PAGINAACTUAL);
        cerrarLogin();
    }else if(datos.estado == "noclave"){
        $("#clave").next().text("Clave incorrecta");
        $("#login").next().text("");
    }else if(datos.estado == "noexiste"){
        $("#clave").next().text("");
        $("#login").next().text("Usuario incorrecto");
    }else if(datos.estado == "logout"){
        $("#tabla").remove();
        $(".paginacion").remove();
        mostrarLogin();
    }
}
function cargarPlatos() {
    $.ajax({
        url: '../ajax/selectPlatos.php',
        type: 'POST',
        data: 'pagina='+REST_PAGINAACTUAL,
        success: function(datos){
            mostrarTabla(datos);
        },
        error: function (){
            alert("adios");
        }
    });
}
function mostrarTabla(datos) {
    var tabla = $("#tabla");
    tabla.empty();
    $("<tr><th>Nombre</th><th>Descripción</th><th>Precio</th><th>Editar</th><th>Borar</th></tr>").appendTo(tabla);
    for (var i = 0 in datos.platos) {
        var fila = $("<tr><td>" + datos.platos[i].nombre + "</td><td>" + datos.platos[i].descripcion + "</td><td>" + datos.platos[i].precio + "</td><td><a class='enlace-modificar' data-id='"+datos.platos[i].id+"'>Editar</a></td><td><a class='enlace-eliminar' data-id='"+datos.platos[i].id+"' data-nombre='"+datos.platos[i].nombre+"'>Borrar</a></td>");
        tabla.append(fila);
    }
    $(".paginacion").remove();
    var tr = document.createElement("div");
    var td = document.createElement("div");
    /*td.setAttribute("colspan", 5);*/
    td.classList.add("paginacion");
    td.innerHTML += "<a class='enlace' data-href='" + datos.paginas.inicio + "'>&lt;&lt;</a> ";
    td.innerHTML += "<a class='enlace' data-href='" + datos.paginas.anterior + "'>&lt;</a> ";
    if (datos.paginas.primero !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.primero + "'>" + (parseInt(datos.paginas.primero) + 1) + "</a> ";
    if (datos.paginas.segundo !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.segundo + "'>" + (parseInt(datos.paginas.segundo) + 1) + "</a> ";
    if (datos.paginas.actual !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.actual + "'>" + (parseInt(datos.paginas.actual) + 1) + "</a> ";
    if (datos.paginas.cuarto !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.cuarto + "'>" + (parseInt(datos.paginas.cuarto) + 1) + "</a> ";
    if (datos.paginas.quinto !== -1)
        td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.quinto + "'>" + (parseInt(datos.paginas.quinto) + 1) + "</a> ";
    td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.siguiente + "'>&gt;</a> ";
    td.innerHTML += "<a  class='enlace' data-href='" + datos.paginas.ultimo + "'>&gt;&gt;</a> ";
    tr.appendChild(td);
    
    tabla.after(tr);
    $(".enlace").unbind("click");
    $(".enlace").on("click", cambiarPagina);
    $(".enlace-modificar").unbind("click");
    $(".enlace-modificar").on("click", recogerPlato);
    $("enlace-eliminar").unbind("click");
    $(".enlace-eliminar").on("click", function(){
        mostrarConfirm($(this));
    });
}
function cambiarPagina(){
    REST_PAGINAACTUAL = $(this).data("href");
    cargarPlatos();
}
function recogerPlato(){
    $.ajax({
        url: '../ajax/selectPlato.php',
        type: 'POST',
        data: 'id='+$(this).data("id"),
        beforeSend: function(){
            $("#img-carga").removeClass("oculto");
        },
        complete: function(){
            $("#img-carga").addClass("oculto");
        },
        success: function(datos){
            mostrarPanel(datos);
        },
        error: function (){
            alert("adios");
        }
    });
    
}

function modificarPlatos(){
    if($(".minifoto").length<3){
        return false;
    }
    datosform = new FormData($("#formulario")[0]);
    $.ajax({
        url: '../ajax/updatePlato.php',
        type: 'POST',
        data: datosform,
        cache: false,
        contentType: false,
        processData: false,
        beforeSend: function(){
            $("#img-carga").removeClass("oculto");
        },
        complete: function(){
            $("#img-carga").addClass("oculto");
        },
        success: function(datos){
            cargarPlatos();
            
            cerrarVentana();
        },
        error: function (datos){
            alert("fallo");
        }
    });
}
function insertarPlato() {
    var imagenes = document.getElementById("archivos");
    imagenes = imagenes.files.length;
    /*imagenes = $(".minifoto").length;*/
    if(imagenes<3){
        alert("minimo de fotos: 3");
        return false;
    }
    datosform = new FormData($("#formulario")[0]);
    
    $.ajax({
        url: '../ajax/insertPlato.php',
        type: 'POST',
        data: datosform,
        cache: false,
        contentType: false,
        processData: false,
        beforeSend: function(){
            $("#img-carga").removeClass("oculto");
        },
        complete: function(){
            $("#img-carga").addClass("oculto");
        },
        success: function (datos) {
            cargarPlatos();
            cerrarVentana();
        },
        error: function (e, a) {
           // alert(a);
        }
    });
}
function llamadaPlatos(){
    if($("#in-id").val()==""){
        insertarPlato();
    }else{
        modificarPlatos();       
    }
}

function borrarPlato(x){
    //alert(x.data("nombre"));
    $.ajax({
        url: '../ajax/deletePlato.php',
        type: 'POST',
        data: 'id='+x.data("id"),
        beforeSend: function(){
            $("#img-carga").removeClass("oculto");
        },
        complete: function(){
            $("#img-carga").addClass("oculto");
        },
        success: function(datos){
            cargarPlatos();
            //alert(datos.error);
        },
        error: function (){
            alert("adios");
        }
    });
}
function borrarFoto(){
    //alert("ok");
    $.ajax({
        url: '../ajax/deleteFoto.php',
        type: 'POST',
        data: 'idplato='+$(this).data("idplato")+'&nombre='+$(this).data("nombre"),
        beforeSend: function(){
            $("#img-carga").removeClass("oculto");
        },
        complete: function(){
            $("#img-carga").addClass("oculto");
        },
        success: function(datos){
            cargarPlatos();
            //alert(datos.error);
        },
        error: function (){
            alert("adios");
        }
    });
}

/*************************************************************************************************************
****************************************** gestion de ventanas ***********************************************
*************************************************************************************************************/

function cerrarVentana(){
    $("#superposicion").addClass("oculto");
    $("#in-id").val("");
    $("#in-nombre").val("");
    $("#in-descripcion").val("");
    $("#in-precio").val("");
    $("#panel-gestion").addClass("borrado");
    $("#mensaje-confirm").text("");
    $("#confirmacion").addClass("borrado");
    var archivador = $('#archivos');
    archivador.replaceWith(archivador.clone(true)); 
    document.getElementById('archivos').addEventListener('change', handleFileSelect, false);
    $("#list").empty();
    $("#galeria").empty();
}

function mostrarConfirm(x){
    $("#mensaje-confirm").text("¿Desea borrar '"+x.data("nombre")+"' y sus fotos");  
    $("#superposicion").removeClass("oculto");
    $("#confirmacion").removeClass("borrado");
    $("#btn-ok").unbind("click");
    $("#btn-ok").on("click", function(){
        borrarPlato(x);
        cerrarVentana();
    });
}
function cerrarConfirm(){
    $("#mensaje-confirm").text("");  
    $("#superposicion").addClass("oculto");
    $("#panel-gestion").removeClass("borrado");
    $("#confirmacion").addClass("borrado");
}
function mostrarPanel(datos){
    if(datos.id==""){
        alert("No se ha encontrado el plato solicitado, pruebe de nuevo");
        return;
    }
    $("#superposicion").removeClass("oculto");
    $("#panel-gestion").removeClass("borrado");
    $("#in-id").val(datos.id);
    $("#in-nombre").val(datos.nombre);
    $("#in-descripcion").val(datos.descripcion);
    $("#in-precio").val(datos.precio);
    for(var i=0; i<datos.fotos.length; i++){
        $("#galeria").append($("<img src='../imagenes/"+datos.fotos[i]+"' data-idplato='"+datos.id+"' data-nombre='"+datos.fotos[i]+"' class='minifoto'>"));
    }
    $(".minifoto").unbind("click");
    $(".minifoto").on("click", borrarFoto);
}
function mostrarPanelVacio(){
    $("#superposicion").removeClass("oculto");
    $("#panel-gestion").removeClass("borrado");
}
function cerrarLogin(){
    $("#login").text("");  
    $("#clave").text("");
    $("#formulario-login").addClass("borrado");
    $("#clave").next().text("");
    $("#login").next().text("");
    $("#superposicion").addClass("oculto");
    $("#btn-salir").removeClass("oculto");
}
function mostrarLogin(){
    $("#login").text("");  
    $("#clave").text("");
    $("#formulario-login").removeClass("borrado");
    $("#clave").next().text("");
    $("#login").next().text("");
    $("#superposicion").removeClass("oculto");
     $("#btn-salir").addClass("oculto");
}
function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object
    document.getElementById('list').innerHTML = "";
    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('image.*')) {
        continue;
      }

      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {
        return function(e) {
          // Render thumbnail.
          var span = document.createElement('span');
          span.innerHTML = ['<img class="minifoto" src="', e.target.result,
                            '" title="', escape(theFile.name), '"/>'].join('');
          document.getElementById('list').insertBefore(span, null);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

 <file_sep><?php

header("Content-Type: application/json");
//header("Content-Type: txt/plain");
require '../require/comun.php';
$sesion = new Sesion();
$sesion->salir();
echo '{"estado": "logout"}';

<file_sep><?php

class Configuracion {
    
    const PERMISOS = 777;
    const SERVIDOR = "localhost";
    const BASEDATOS = "rest2";
    const USUARIO = "root";
    const CLAVE = "";
    const PEZARANA = "<NAME>";
    const ORIGENGMAIL = "<EMAIL>";
    const CLAVEGMAIL = "*******";
    const RPP = 4;
    const TIMEOUT = 1800;
}<file_sep><?php

header("Content-Type: application/json");
//header("Content-Type: txt/plain");
require '../require/comun.php';
$sesion = new Sesion();
$bd = new BaseDatos();
$modelo = new modeloUsuario($bd);

$login = Leer::post("login");
$clave = Leer::post("clave");

if($login == "" || $clave == ""){
    if($sesion->isAutentificado()){
        echo '{"estado": "logueado"}';
        exit();
    }else{
        echo '{"estado": "pedir"}';
        exit();
    }
    
}

if(Validar::isCorreo($login)){
    $param['email']=$login;
    $filas = $modelo->getList("email=:email", $param);
    if(sizeof($filas)>0){
        $login = $filas[0]->getLogin();
    }
}

$objeto = $modelo->get($login);
if($objeto->getLogin() == null || !$objeto->getIsactivo()){
    echo '{"estado": "noexiste"}';
    exit();
}
if(!Util::isPass($clave, $objeto->getClave())){
    echo '{"estado": "noclave"}';
    exit();
}

$sesion->setAutentificado(true);
$modelo->setFechaLogin($login);
$sesion->setUsuario($objeto);
echo '{"estado": "logueado"}';
<file_sep><?php

/**
 * Description of modeloPlato
 *
 * @author Javier
 */
class modeloPlato {
    private $bd, $tabla="platos", $tablafotos="fotos";
    function __construct(BaseDatos $bd) {
        $this->bd = $bd;
    }
    function add(Plato $plato){
        $sql = "INSERT INTO $this->tabla VALUES (null, :nombre, :descripcion, :precio)";
        $param['nombre'] = $plato->getNombre();
        $param['descripcion'] = $plato->getDescripcion();
        $param['precio'] = $plato->getPrecio();
        $r=$this->bd->setConsulta($sql, $param);
        if(!$r){
            return -1;
        }
        return $this->bd->getAutonumerico();
    }
    function addFoto(Plato $objeto){
        $sql = "INSERT INTO $this->tablafotos VALUES(null, :idplato, :nombre)";
        $arrayfotos = $objeto->getFotos();
        $error=0;
        foreach($arrayfotos as $key => $foto){
            $param['idplato']=$objeto->getId();
            $param['nombre']=$foto;
            $r=$this->bd->setConsulta($sql, $param);
            if(!$r){
                $error=-1;
            }
        }
        //devuelve -1 si alguna inserción falló
        return $error;
    }
    function delete($id){
        $nombres = $this->getNombreFotos($id);
        foreach ($nombres as $nombre){
            unlink("../imagenes/".$nombre);
        }
        $sql = "DELETE FROM $this->tabla WHERE id=:id";
        $param['id'] = $id;
        $r=$this->bd->setConsulta($sql, $param);
        if(!$r){
            return -1;
        }
        return $this->bd->getNumeroFilas();
    }
    function deleteFoto($idplato, $nombre){
        unlink("../imagenes/".$nombre);
        $sql = "DELETE FROM $this->tablafotos WHERE idplato=:idplato and nombre=:nombre";
        $param['idplato'] = $idplato;
        $param['nombre'] = $nombre;
        $r=$this->bd->setConsulta($sql, $param);
        if(!$r){
            return -1;
        }
        return $this->bd->getNumeroFilas();
    }
    function update(Plato $plato){
        $sql = "UPDATE $this->tabla SET nombre=:nombre, descripcion=:descripcion, precio=:precio WHERE id=:id";
        $param['id'] = $plato->getId();
        $param['nombre'] = $plato->getNombre();
        $param['descripcion'] = $plato->getDescripcion();
        $param['precio'] = $plato->getPrecio();
        $r=$this->bd->setConsulta($sql, $param);
        if(!$r){
            return -1;
        }
        return $this->bd->getNumeroFilas();
    }
    
    function count($condicion = "1=1", $parametros = array()) {
        $sql = "select count(*) from $this->tabla where $condicion";
        $r = $this->bd->setConsulta($sql, $parametros);
        if ($r) {
            $x = $this->bd->getFila();
            return $x[0];
        }
        return -1;
    }
    
    function get($id){
        $sql = "SELECT * FROM $this->tabla where id=:id";
        $param['id']=$id;
        $r=$this->bd->setConsulta($sql, $param);
        if($r){
            $plato = new Plato();
            $plato->set($this->bd->getFila());
            $plato->setFotos($this->getNombreFotos($id));
            return $plato;
        }
        return null;
    }
    /********************************************************************************************/
    private function getNombreFotos($id){
        $list = array();
        $sql = "select * from $this->tablafotos where idplato=:idplato";
        $param['idplato']=$id;
        $r = $this->bd->setConsulta($sql, $param);
        if($r){
            while($fila = $this->bd->getFila()){
                $list[] = $fila[2];
            }
        }else{
            return null;
        }
        return $list;
    }
    /********************************************************************************************/
    function getList($condicion="1=1", $parametro=array(), $orderby = "1"){
        $list = array();
        $sql = "select * from $this->tabla where $condicion order by $orderby";
        $r = $this->bd->setConsulta($sql, $parametro);
        if($r){
            while($fila = $this->bd->getFila()){
                $plato = new Plato();
                $plato->set($fila);
                $plato->setFotos($this->getNombreFotos($id));
                $list[] = $plato;
            }
        }else{
            return null;
        }
        return $list;
    }
    function getListJSON($pagina=0, $rpp=3, $condicion="1=1", $parametro=array(), $orderby = "1"){
        $principio = $pagina*$rpp;
        $sql = "select * from $this->tabla where $condicion order by $orderby limit $principio,$rpp";
        /*$sql = "select * from $this->tabla p "
                . "left join fotos f "
                . "on p.id = f.idplato "
                . "where $condicion order by $orderby limit $principio,$rpp";*/
        $this->bd->setConsulta($sql, $parametro);
        /*$foto = array();*/
        $r = "[ ";
        while($fila = $this->bd->getFila()){
            $bd2 = new BaseDatos();
            $modelo2 = new modeloPlato($bd2);
            $plato = new Plato();
            $plato->set($fila);
            
            $fotos = $modelo2->getNombreFotos($plato->getId());
            $plato->setFotos($fotos);
            $r .= $plato->getJSON() . ",";
        }
        $r = substr($r, 0, -1)."]";
        return $r;
    }
}
<file_sep>
create table platos (
  id tinyint(4) not null primary key auto_increment,
  nombre varchar(200) not null,
  descripcion varchar(400) not null,
  precio decimal(10,2) not null
) engine=innodb charset=utf8 collate=utf8_unicode_ci;

create table fotos (
  id tinyint(5) not null primary key auto_increment,
  idplato tinyint(4) not null,
  nombre varchar(50) not null,
  CONSTRAINT fotos_fk FOREIGN KEY (idplato) REFERENCES platos (id) ON DELETE CASCADE
) engine=innodb charset=utf8 collate=utf8_unicode_ci;

create table usuario( 
  login varchar(20) not null primary key, 
  clave varchar(40) not null, 
  nombre varchar (60) not null, 
  apellidos varchar(60) not null, 
  email varchar(40) not null, 
  fechaalta date not null, 
  isactivo tinyint(1) not null default 0, 
  isroot tinyint(1) not null default 0, 
  rol enum('administrador', 'usuario', 'vendedor') not null default 'usuario', 
  fechalogin datetime 
)  engine=innodb charset=utf8 collate=utf8_unicode_ci<file_sep>window.addEventListener("load", function(){
    var pos = new google.maps.LatLng(37.176817, -3.589867);
    var mapaconfig = {
            zoom: 10,
            center: new google.maps.LatLng(37.176817, -3.589867),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
    mapa = new google.maps.Map(document.getElementById('mapa'), mapaconfig);
    var marker = new google.maps.Marker({
        position: pos,
        title:"Hello World!"
    });
    marker.setMap(mapa);
    var boton = document.getElementById("boton-js");
    var menu = document.querySelector("nav ul");
    boton.addEventListener("click", function(){
        this.classList.toggle("menu-abierto");
        menu.classList.toggle("abrir");
    });       
    
});<file_sep><?php

    header("Content-Type: application/json");
    require '../require/comun.php'; 
    $bd = new BaseDatos();  
    $modelo = new modeloPlato($bd);   
    $nombre = Leer::post("nombre");
    $descripcion = Leer::post("descripcion");
    $precio = Leer::post("precio");
    
    $subir = new SubirMultiple("archivos");

    $subir->addExtension("jpg");
    $subir->addExtension("png");
    $subir->addTipo("image/jpeg");
    $subir->addTipo("image/png");
    $subir->setNuevoNombre(time());
    $subir->setAcccion(1);
    $subir->setAccionExcede(1);
    $subir->setTamanio(1024*1024*5);
    $subir->setCantidadMaxima(10);
    $subir->setCrearCarpeta(true);
    $subir->setDestino("../imagenes");
    $subir->subir();
    $fotos = $subir->getNombres();

    $plato = new Plato(null, $nombre, $descripcion, $precio, $fotos);
    $r = $modelo->add($plato);
    $plato->setId($r);
    $s = $modelo->addFoto($plato);
    echo $plato->getJSON();
    $bd->closeConexion();