Query works in mysql but datatables does not recognize it

0

I have the following query:

$consulta = "

select t.id, t.nombre_mes, t.valor, t.ano, t.procedimiento, t.folio, t.fecha_envio, t.etapa
from(
SELECT
meses.id,
meses.nombre_mes,
hijos.valor AS valor,
hijos.opcion AS procedimiento,
pedidos.correlativo AS folio,
asignacion_etapas.etapa AS etapa,
DATE(asignacion.fecha_envio) AS fecha_envio,
year(asignacion.fecha_envio) AS ano
FROM meses
left join asignacion ON meses.id = MONTH(asignacion.fecha_envio)
left join pedidos on pedidos.id = asignacion.id_pedido
left join asignacion_etapas on asignacion_etapas.id_pedido = pedidos.id
left join hijos on hijos.id = pedidos.tratamiento
left join clientes on clientes.id = pedidos.cliente
WHERE asignacion.id_laboratorio = 4 AND asignacion.estado_envio = 'S' AND MONTH(asignacion.fecha_envio) = 12 AND YEAR(asignacion.fecha_envio) = 2018 AND clientes.id = 9

UNION ALL
SELECT
meses.id,
meses.nombre_mes,
hijos.valor AS valor,
hijos.opcion AS procedimiento,
asignacion_etapas.folio AS folio,
asignacion_etapas.etapa AS etapa,
DATE(asignacion_etapas.fecha_envio) AS fecha_envio,
year(asignacion_etapas.fecha_envio) AS ano
FROM meses
LEFT JOIN asignacion_etapas ON meses.id = MONTH(asignacion_etapas.fecha_envio)
left join pedidos on pedidos.id = asignacion_etapas.id_pedido
left join asignacion on asignacion.id_pedido = asignacion_etapas.id_pedido
left join hijos on hijos.id = asignacion_etapas.proc
left join clientes on clientes.id = asignacion_etapas.id_cliente
WHERE asignacion_etapas.id_laboratorio = 4 AND asignacion_etapas.estado_envio = 'S' AND MONTH(asignacion_etapas.fecha_envio) = 12 AND YEAR(asignacion_etapas.fecha_envio) = 2018 AND clientes.id = 9

) as t";

$resultado = $conexion->query($consulta);
if ($resultado->num_rows > 0){
    while ($row = $resultado->fetch_array()) {
        $arreglo["data"][]= $row;
    }
    echo json_encode($arreglo);

}else{
    echo '{
    "sEcho": 1,
    "iTotalRecords": "0",
    "iTotalDisplayRecords": "0",
    "aaData": []
    }';
}

$resultado->close();

This query, if I execute it in mysql, works well and prints the records and results that I need, but when it is called from the datatables it does not work.

So I receive it in the file that executes the datatables:

$(document).ready(function() {
  var table = $('#listado').DataTable({
    "ajax" : "list_desglose_clin.php?mes=<?php echo $mes?>&ano=<?php echo $ano?>&clin=<?php echo $id_clin?>",
    "columns" : [
    {
      "sClass": "alignRight",
      "data": "folio"
    },{
      "sClass": "alignRight",
      "data": null,
      "render": function (data, type, row, meta) {
        var etapa = row['etapa'];
        if (etapa == null){
          return 'N/A';
        }else{
          return ' '+etapa+' ';
        }
      }
    },{
      "sClass": "alignRight",
      "data": "ano"
    },{
      "sClass": "alignRight",
      "data" : "nombre_mes"
    },{
      "sClass": "alignRight",
      "data" : "procedimiento"
    },{
      "sClass": "alignRight",
      "data" : "valor"
    },{
      "sClass": "alignRight",
      "data" : "fecha_envio",
      "render": function (data) {
        var dateString = new Date(data);
        return moment.utc(dateString).format('DD/MM/YYYY');
      }
    }
    ],
    "iDisplayLength": 25,
    "language": {
    "emptyTable": "SIN REGISTROS",
    "infoEmpty": "",
    "search": "Buscar _INPUT_ ",
    "info": "Mostrando Pagina _PAGE_ de _PAGES_",
    "lengthMenu": "Mostrando _MENU_ Registros",
    "infoFiltered": "(Busqueda Desde _MAX_ Registros Totales)",
    "paginate": {
        "next": "Siguiente",
        "previous": "Anterior"
     }
    },
  });
});

I do not receive any error from the console or execute the XHR to see any error in the generated json. Does anyone have any ideas that may be happening? Thank you very much everyone for your help and guidance.

    
asked by maha1982 04.01.2019 в 00:05
source

0 answers