Foros del Web » Programando para Internet » PHP »

ceros a la izquiera en campo tipo char

Estas en el tema de ceros a la izquiera en campo tipo char en el foro de PHP en Foros del Web. Buenas a todos, tengo una tabla con la siguiente estructura: Tabla: CODIGO char(10); NOMBRE varchar(25); Y en el campo CODIGO Generalmente se guarda de la ...
  #1 (permalink)  
Antiguo 21/07/2011, 07:29
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
ceros a la izquiera en campo tipo char

Buenas a todos, tengo una tabla con la siguiente estructura:
Tabla:

CODIGO char(10);
NOMBRE varchar(25);

Y en el campo CODIGO Generalmente se guarda de la siguiente forma:

0000000001, 0000000002 .....

Resulta que antes de guardar, yo debo indicar cual es el siguiente consecutivo a guardar, pero el campo como no es autoincremento me toca aumentarle un 1 al maximo valor encontrado, lo hago asi:

Código PHP:
Ver original
  1. <?php
  2. $sql="SELECT MAX(CODIGO) FROM TABLA";
  3. $obj->consulta($sql);
  4. $nfilas=$obj->numFilas();
  5. $row = sqlsrv_fetch_array($obj->result);
  6. $consecutivo=$row[0];
  7. echo $consecutivo; //aca me muestra asi: 0000003026
  8. //Ahora le aumento:
  9. $consecutivo=$consecutivo+1;  //pero ahora si muestro me sale 3027
  10. ?>
Como puedo mantener el valor de los ceros a la izquierda?, sin tener que modificar tablas ni nada de eso?.......Agradezco me puedan orientar, muchas gracias
  #2 (permalink)  
Antiguo 21/07/2011, 07:34
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: ceros a la izquiera en campo tipo char

¿Siempre van a ser la misma cantidad de 0?
Si te permiten modificar la base de datos podrías usar ZEROFILL en la base de datos
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 21/07/2011, 07:50
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ceros a la izquiera en campo tipo char

el tener ceros a la izquierda PHP lo interpreta como un Octal, ten cuidado con eso..
por lo demás puedes formatear el numero fácilmente con sprintf()
www.php.net/sprintf

Código PHP:
$numero 3027;
echo 
sprintf('%010d'$numero); // 0000003027 
saludos.

PD: la mejor opción sigue siendo modificar la base de datos.. =)
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 21/07/2011, 07:53
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: ceros a la izquiera en campo tipo char

Cita:
Iniciado por IEKK Ver Mensaje
¿Siempre van a ser la misma cantidad de 0?
Si te permiten modificar la base de datos podrías usar ZEROFILL en la base de datos
No, el número de ceros no siempre es el mismo
Por ejemplo ahora es:
0000000327
mas adelante podria ser 0000001327

Ya la cantidad varia, y pues no puedo modificar la bd, ya tiene muchos registros, son unos cambios que me piden hacer...
  #5 (permalink)  
Antiguo 21/07/2011, 07:55
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: ceros a la izquiera en campo tipo char

Entonces es mejor la idea de Hidek1 porque efectivamente con php te lo interpretaría como como octal.
Supongo que te suma 1 más de forma correcta porque el tipo de dato lo coge como cadena.

Mira ver si te sirve su idea
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 21/07/2011, 08:01
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: ceros a la izquiera en campo tipo char

Pues octo por esa idea, gracias Hidek1
y tambien gracias IEKK
  #7 (permalink)  
Antiguo 21/07/2011, 16:26
 
Fecha de Ingreso: junio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: ceros a la izquiera en campo tipo char

Porque te complicas, usando CHAR? mejor usa INT(10) UNSIGNED ZEROFILL, de esta manera cuando insertes 25 te dara 0000025 y asi llenara los espacios con 0, intenta eso a hacer php
  #8 (permalink)  
Antiguo 21/07/2011, 16:31
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: ceros a la izquiera en campo tipo char

Cita:
Iniciado por juanmtzlo Ver Mensaje
Porque te complicas, usando CHAR? mejor usa INT(10) UNSIGNED ZEROFILL, de esta manera cuando insertes 25 te dara 0000025 y asi llenara los espacios con 0, intenta eso a hacer php
Pues por mi no me complicaria, el problema es que es algo que ya esta hecho y no puedo cambiar diseño a las tablas.........solo debo agregarle unas cosas pero todo por programación, pero ya encontre una solución.....gracias

Etiquetas: char, sql, tabla, tipo, campos, cero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.