Foros del Web » Programando para Internet » PHP »

Problema con "Ceros" a la izquierda

Estas en el tema de Problema con "Ceros" a la izquierda en el foro de PHP en Foros del Web. Buenas noches amigos, estoy haciendo un software de facturacion via web con php y mysql y tengo el siguiente problema: cuando paso una variable numerico ...
  #1 (permalink)  
Antiguo 23/06/2009, 15:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema con "Ceros" a la izquierda

Buenas noches amigos,
estoy haciendo un software de facturacion via web con php y mysql y tengo el siguiente problema:
cuando paso una variable numerico entre dos paginas, cuando esta llega a la pagina destino, aparece la variable pero sin los "ceros" que tenian a la izquierda.
Por ejemplo:
La variable "0002" se convierte en "2".
La variable "09002" se convierte en "9002".

He estado investigando y la unica solucion que encuentro es convertir el campo numero en string, pero esa solucion no me vale ya que necesito un campo que se incremente solo.
Me gustaria solucionar esto sin tener que cambiar el tipo de campo.

Espero vuestras respuestas,
un saludo.
  #2 (permalink)  
Antiguo 23/06/2009, 15:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con "Ceros" a la izquierda

Puedes usar ZEROFILL para declarar el campo.
http://dev.mysql.com/doc/refman/5.0/...-overview.html
  #3 (permalink)  
Antiguo 23/06/2009, 15:23
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con "Ceros" a la izquierda

Todo lo que se pasa entre dos páginas via POST o GET se pasa y se trata como cadena, así que la conversión es implícita.
Quizás te sirva tratar a los números como enteros y luego usar str_pad cuando lo necesites.


Saludos
  #4 (permalink)  
Antiguo 23/06/2009, 16:05
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Problema con "Ceros" a la izquierda

str_pad que interesante funcion xd, ahorra mucho cuando antes trabajaba con tablas auxiliares y generaba los ceros con procedimientos almacenados, gracias
__________________
Quitenme la vida pero no la bebida.
  #5 (permalink)  
Antiguo 27/06/2009, 03:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con "Ceros" a la izquierda

Perdonar la tardanza en responder pero hasta ahora no he podido conectarme parar mirar el foro. Voy a probar lo que decis y ya os comento como ha ido.

Cita:
Puedes usar ZEROFILL para declarar el campo.....
Así tengo los campos en tabla y en la base de datos lo hace bien pero en php pierdo el cero a la izquierda.

Bueno lo dicho, voy a probar y os comento.

Un saludo y gracias.
  #6 (permalink)  
Antiguo 27/06/2009, 03:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema con "Ceros" a la izquierda

Hola:

Una rápida solución con programación recursiva:

Código:
function ajuste($n, $t)	{
	if (strlen($n) < $t)
		return ajuste("0$n", $t);
	else
		return $n;
}

echo ajuste("25", 7);
... y jugando con la sinaxis... en una línea:

Código:
function ajuste($n, $t)	{
	return (strlen($n) < $t) ? ajuste("0$n", $t): $n;
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 27/06/2009 a las 04:50 Razón: Pequeño retoque
  #7 (permalink)  
Antiguo 27/06/2009, 08:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Problema con "Ceros" a la izquierda

Cita:
Iniciado por AlvaroG Ver Mensaje
Todo lo que se pasa entre dos páginas via POST o GET se pasa y se trata como cadena, así que la conversión es implícita.
Quizás te sirva tratar a los números como enteros y luego usar str_pad cuando lo necesites.


Saludos
Buenas,
despues de hacer una pruebas creo q la opcion que me da AlvaroG es la mas adecuada y facil de usar.

Gracias a todos por vuestra ayuda,
Un saludo.
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 01:02.