ZEROFILL field in PHP

0

I require that the id ( id_servicios ) of my table servicios contain the attribute unsigned zerofill of MySQL, until here, everything is fine. The problem arises when I return the query data with PHP, the id_servicios returns a value without the zeros that I require to have a numeric value of 11 characters.

Image / Query

MySql query

SELECT svcs.id_servicios,
       svcs.llamada_servicio,
                    svcs.codigo_autorizacion_servicio,
                    svcs.fecha_servicio,
                    svcs.hora_servicio,
                    empr.id_empresa,
                    empr.nombre_empresa,
                    pnal.id_personal,
                    pnal.nombre_personal,
                    pnal.telefono_personal,
                    pnal.celular_personal,
                    svcs.id_tipo_servicio,
                    tser.nombre_tipo_servicio,
                    svcs.cantidad_movil,
                    svcs.direccion_origen_servicio,
                    corg.nombre_comuna_origen,
                    svcs.direccion_destino_servicio,
                    cdes.nombre_comuna_destino,
                    svcs.observacion_servicio,
                    svcs.fecha_generacion_servicio,
                    esrv.nombre_estado_servicio,
                    prna.numero_movil_persona
              FROM servicios svcs
              INNER JOIN empresa empr
              ON empr.id_empresa = svcs.id_convenio_servicio
              INNER JOIN personal pnal
              ON pnal.id_personal = svcs.id_personal_servicio
              INNER JOIN tipo_servicio tser
              ON tser.id_tipo_servicio = svcs.id_tipo_servicio
              INNER JOIN comuna_origen corg
              ON corg.id_comuna_origen = svcs.id_comuna_origen_servicio
              INNER JOIN comuna_destino cdes
              ON cdes.id_comuna_destino = svcs.id_comuna_destino_servicio
              INNER JOIN estado_servicio esrv
              ON esrv.id_estado_servicio = svcs.id_estado_servicio
              LEFT JOIN persona prna
              ON prna.id_persona = svcs.id_movil_servicio
              ORDER BY svcs.id_servicios DESC

PHP Code

<?php
 //Declaracion de cabeceras del sistema
 header("Context-type: application/json;");
 //Inclusion del archivo respectivo para la conexion con la BD
 require '../conexion.php';
 //Declaracion del array para codificar en formato JSON la variable mensaje
 $resultado = array();
 //Evaluamos si la conexion a la BD se realiza correctamente
 if ($mysqli)
 {
     //Objeto convertido a formato UTF8 para insertar caracteres especiales en la BD del sistema
     $mysqli->set_charset('utf8');
     //Prepramos la consulta para INSERTAR datos en a BD a la tabla empresa
     $sql = "SELECT svcs.id_servicios,
                    svcs.llamada_servicio,
                    svcs.codigo_autorizacion_servicio,
                    svcs.fecha_servicio,
                    svcs.hora_servicio,
                    empr.id_empresa,
                    empr.nombre_empresa,
                    pnal.id_personal,
                    pnal.nombre_personal,
                    pnal.telefono_personal,
                    pnal.celular_personal,
                    svcs.id_tipo_servicio,
                    tser.nombre_tipo_servicio,
                    svcs.cantidad_movil,
                    svcs.direccion_origen_servicio,
                    corg.nombre_comuna_origen,
                    svcs.direccion_destino_servicio,
                    cdes.nombre_comuna_destino,
                    svcs.observacion_servicio,
                    svcs.fecha_generacion_servicio,
                    esrv.nombre_estado_servicio,
                    prna.numero_movil_persona
              FROM servicios svcs
              INNER JOIN empresa empr
              ON empr.id_empresa = svcs.id_convenio_servicio
              INNER JOIN personal pnal
              ON pnal.id_personal = svcs.id_personal_servicio
              INNER JOIN tipo_servicio tser
              ON tser.id_tipo_servicio = svcs.id_tipo_servicio
              INNER JOIN comuna_origen corg
              ON corg.id_comuna_origen = svcs.id_comuna_origen_servicio
              INNER JOIN comuna_destino cdes
              ON cdes.id_comuna_destino = svcs.id_comuna_destino_servicio
              INNER JOIN estado_servicio esrv
              ON esrv.id_estado_servicio = svcs.id_estado_servicio
              LEFT JOIN persona prna
              ON prna.id_persona = svcs.id_movil_servicio
              ORDER BY svcs.id_servicios DESC";
     $consultar_servicio = $mysqli->prepare($sql);
     if ($consultar_servicio->execute())
     {
        $result = $consultar_servicio->get_result();
        $data_area = array();
        while($row = $result->fetch_array(MYSQLI_ASSOC))
        {
          $data_area[] = $row;
        };
        echo json_encode($data_area);
     }
     else
     {
       $resultado['mensaje'] = "Ha ocurrido un error: " . $mysqli->error;
       echo json_encode($resultado);
     }
   }
   else
   {
       $resultado['mensaje'] = "No hay conexión a la BD";
   }
?>

Image / JSON

Expected value in JSON / PHP

Next, I show with this code that the attribute actually returns correctly, but because it is a form of insecure programming, I discard it, so now I want to go deeper into why this happens?

<?php
  header("Context-type: application/json;");
  require '../conexion.php';
  $mysqli->set_charset('utf8');
  $resultado = $mysqli->query("SELECT svcs.id_servicios,
                 svcs.llamada_servicio,
                 svcs.codigo_autorizacion_servicio,
                 svcs.fecha_servicio,
                 TIME_FORMAT(svcs.hora_servicio,'%H:%i %p') AS hora_servicio,
                 svcs.fecha_final_servicio,
                 empr.id_empresa,
                 empr.nombre_empresa,
                 pnal.id_personal,
                 pnal.nombre_personal,
                 pnal.telefono_personal,
                 pnal.celular_personal,
                 svcs.id_tipo_servicio,
                 tser.nombre_tipo_servicio,
                 svcs.cantidad_movil,
                 svcs.direccion_origen_servicio,
                 corg.nombre_comuna_origen,
                 svcs.direccion_destino_servicio,
                 cdes.nombre_comuna_destino,
                 svcs.observacion_servicio,
                 svcs.fecha_generacion_servicio,
                 esrv.nombre_estado_servicio,
                 prna.numero_movil_persona
           FROM servicios svcs
           INNER JOIN empresa empr
           ON empr.id_empresa = svcs.id_convenio_servicio
           INNER JOIN personal pnal
           ON pnal.id_personal = svcs.id_personal_servicio
           INNER JOIN tipo_servicio tser
           ON tser.id_tipo_servicio = svcs.id_tipo_servicio
           INNER JOIN comuna_origen corg
           ON corg.id_comuna_origen = svcs.id_comuna_origen_servicio
           INNER JOIN comuna_destino cdes
           ON cdes.id_comuna_destino = svcs.id_comuna_destino_servicio
           INNER JOIN estado_servicio esrv
           ON esrv.id_estado_servicio = svcs.id_estado_servicio
           LEFT JOIN persona prna
           ON prna.id_persona = svcs.id_movil_servicio
           ORDER BY svcs.id_servicios DESC");

  $dataServicios = array();

  while ($row = $resultado->fetch_assoc())
  {
    $dataServicios[] = $row;
  }

  echo json_encode($dataServicios);

?>

Result

[{"id_servicios":"000000000007"},{"id_servicios":"000000000006"},{"id_servicios":"000000000005"},{"id_servicios":"000000000004"},{"id_servicios":"000000000003"},{"id_servicios":"000000000002"},{"id_servicios":"000000000001"}]

  

What could you correct to get the correct value of the query?

    
asked by jecorrales 06.07.2018 в 04:44
source

0 answers