PHP - correlativo

   
Vista:

correlativo

Publicado por movick (824 intervenciones) el 12/10/2014 04:41:07
tengo este codigo para crear un correlativo y le estoy agregando ceros a la izquierda, el cual debo guardar en una tabla
pero solo esta guardando el ultimo nro de la derecha y no esta guardando los ceros.

Me explico, debiera guardar el registro asi 0001 solo guarda el nro 1


si alguien pudiera ayudarme. De antemano muchs gracias.
Nota: Estoy pasando el name de la <td> nrohistoria por post
<?php
$hoy=date('d-m-Y');


$query= pg_query("SELECT max(nrohistoria)+1 as MaxNroHistoria FROM paciente");
if ($row = pg_fetch_row($query))
{
$id = str_pad(trim($row[0]),4,"0",STR_PAD_LEFT);
}
?>
<td class='sr'><input type='text' readonly="T" value="<?php echo $id; ?>" name='nrohistoria' size='10' maxlength='10' align='right'/></td></tr>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

correlativo

Publicado por xve (5519 intervenciones) el 12/10/2014 14:49:05
Hola Movick, hasta donde yo se, tienes dos opciones...
1.- poner el campo tipo string/cadena
2.- definir el campo de tipo unsigned zerofill, que te llenara de ceros antes del numero.

Coméntanos si te sirve, y cual utilizas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

correlativo

Publicado por movick (824 intervenciones) el 13/10/2014 04:20:53
Hola xve, te pregunto, ¿no sirve este codigo:?
1
2
3
4
5
6
$query= pg_query("SELECT max(nrohistoria)+1 as MaxNroHistoria FROM paciente");
if ($row = pg_fetch_row($query))
{
$id = str_pad(trim($row[0]),4,"0",STR_PAD_LEFT);
}
?>
No entiendo, debo cambiarlo en la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

correlativo

Publicado por xve (5519 intervenciones) el 13/10/2014 11:43:35
Hola Movick, si el campo es un entero, por muchos ceros que pongas delante, los eliminara, ya que no tienen valor en un campo entero.

Si en una calculadora pones 00001, solo visualizaras el 1.

Tienes que cambiar el formato del campo!!!

Otra manera, es que en el momento de mostrar la información de la base de datos le añadas los ceros..., pero vaya, yo preferiría dejarlo bien, y luego el que acceda a la base de datos se lo encuentre de la manera correcta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

correlativo

Publicado por movick (824 intervenciones) el 14/10/2014 03:36:24
Hola Xve, disculpa mi insistencia
Pero hallé esta funcion:

1
2
3
4
function zerofill ($num, $zerofill = 5)
{
    return str_pad($num, $zerofill, '0', STR_PAD_LEFT);
}

como la aplicaria a este codigo
1
2
3
4
if ($row = pg_fetch_row($query))
 {
  $id = str_pad(trim($row[0]),4,"0",STR_PAD_LEFT);
 }

o como lo aplicaria al codigo que procesa los datos que envio a la base de datos?

el cual es este trozo, y es donde esta el nro de historia cuyo campo es el que debe obtener los ceros:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
$conexion = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=1234");
 
$NroHistoria = $_POST['nrohistoria'];
 
 
$nombres = $_POST['nombres'];
$apellidos = $_POST['apellidos'];
$direccion = $_POST['direccion'];
$telefono = $_POST['telefono'];
 
$fecha_nac = $_POST['fechanac'];
$anio  = substr($fecha_nac,6,4);
$mes   = substr($fecha_nac,3,2);
$dia   = substr($fecha_nac,0,2);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

correlativo

Publicado por Pablo (1 intervención) el 28/01/2015 15:41:37
En el caso de MySQL aparece con ceros a la izquierda dado que al definir la tabla establecimos TINYINT(8) UNSIGNED ZEROFILL.


Mira este link... te ayudara a solucionarlo rapido.



http://www.rinconastur.com/php/php115.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar