Foros del Web » Programando para Internet » PHP »

validar un campo con 5 caracteres tipo int

Estas en el tema de validar un campo con 5 caracteres tipo int en el foro de PHP en Foros del Web. hola tengo una duda.... necesito validar un campo en un formulario para guardarlo en una base de datos tiene que ser numerico con un minimo ...
  #1 (permalink)  
Antiguo 30/09/2010, 11:23
Avatar de ALANCIN  
Fecha de Ingreso: septiembre-2010
Ubicación: mexico
Mensajes: 43
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta validar un campo con 5 caracteres tipo int

hola tengo una duda....

necesito validar un campo en un formulario para guardarlo en una base de datos tiene que ser numerico con un minimo y maximo de 5 caracteres

en kaso de poner el numero mmm ejemplo....50.... ke se autocomplete kon tres ceros faltantes al principio para que sean los 5 caracteres deseados,

spero me entiendan y me respondan lo antes posible.....
  #2 (permalink)  
Antiguo 30/09/2010, 11:30
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: validar un campo con 5 caracteres tipo int

para validar sólo números tienes la función is_numeric(), para contar caracteres tienes la función strlen(), con eso ya podrás realizar la operación que deseas.

Saludos.
  #3 (permalink)  
Antiguo 30/09/2010, 11:39
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: validar un campo con 5 caracteres tipo int

esto es lo que necesitas str_pad
tienes que tomar el valor como string ya que si es numérico los ceros a la izq son eliminados.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 30/09/2010, 11:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: validar un campo con 5 caracteres tipo int

o tambien con sprintf ...
echo sprintf('%d05', 50); // 00050
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 30/09/2010, 12:00
Avatar de ALANCIN  
Fecha de Ingreso: septiembre-2010
Ubicación: mexico
Mensajes: 43
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: validar un campo con 5 caracteres tipo int

gracias por las respuestas tan rapidas pus ya utilice el

Código PHP:
Ver original
  1. is_numeric($_POST['id_socio']) == "0123456789" && strlen($_POST['id_socio']) == 5

y si me lo valida solo ke no entendi muy bien el

sprintf

que me mencionan.....
  #6 (permalink)  
Antiguo 30/09/2010, 12:22
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: validar un campo con 5 caracteres tipo int

ten cuidado con el is_numeric, ya que esto 1e4 es tomado como número, por otro lado, quiero pensar que tienes esto
Código PHP:
Ver original
  1. if(is_numeric($_POST['id_socio']) == "0123456789" && strlen($_POST['id_socio']) == 5){
de ser así, no se cual es la lógica que usas porque is_numeric devuelve true o false y ninguno es igual a '0123456789'.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 30/09/2010, 12:30
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: validar un campo con 5 caracteres tipo int

aqui te va como lo haría
Código PHP:
Ver original
  1. (int)$socio=$_POST['id_socio'];
  2. if(strlen($socio)<5){
  3.     echo str_pad($socio,5,0,STR_PAD_LEFT);
  4. }
espero y te sirva.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 30/09/2010, 13:16
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: validar un campo con 5 caracteres tipo int

Cita:
Iniciado por eits Ver Mensaje
aqui te va como lo haría
Código PHP:
Ver original
  1. (int)$socio=$_POST['id_socio'];
  2. if(strlen($socio)<5){
  3.     echo str_pad($socio,5,0,STR_PAD_LEFT);
  4. }
espero y te sirva.
saludos.
Código PHP:
(int)$socio=$_POST['id_socio']; 
... realmente eso no deberia funcionar..
en ninguna parte le dices q detenga la ejecucion si es que no es integer.

si haces una prueba
Código PHP:
(int) $socio "abcd";
if(
strlen($socio)<5){
    echo 
str_pad($socio,5,0,STR_PAD_LEFT);

veras que el echo se ejecutara de todas formas..

como yo lo aria seria algo asi
Código PHP:
// $data = "abc";
$data 123;
if (
preg_match('/^[0-9]{1,5}$/'$data)) {
    
printf('%05d'$data);

saludos.

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 30/09/2010, 14:05
Avatar de ALANCIN  
Fecha de Ingreso: septiembre-2010
Ubicación: mexico
Mensajes: 43
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: validar un campo con 5 caracteres tipo int

miren.....intente el de eits y es correcto komo dice Hidek no los kambia a numerikos intente kon su ayuda y ya keda

pro eso "solo para imprimir en pantalla"

pero

para guardarlo en mysql creo ke no se puede...ya stube konsultando en varios foros y pag en internet y ya hice la prueba insertando desde el mismo mysql y no se puede....

si alguien sabe de algo en kontra de lo ke digo por fas ke me ayude ok......

de antemano muchas gracias a los 3
  #10 (permalink)  
Antiguo 30/09/2010, 14:34
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: validar un campo con 5 caracteres tipo int

Luego de validar si es numérico don is_numeric(), crea una procedimeinto almacenado y le pasas el parametro, mira este ejemplo lo hice para un hotel haciendo unos cambios lo puedes lograr:
Código MySQL:
Ver original
  1. delimiter //
  2. create procedure insertarcliente(nom varchar(40),ape varchar(40),dir varchar(40),tel varchar(40),dnii varchar(40),ruc varchar(40), tipo varchar(40))
  3. select count(c.codcliente)
  4. from cliente c, detallecliente d
  5. where d.codigodetalle=c.codigodetalle
  6. and d.descripdetalle=tipo;
  7. if tipo="habitual" then
  8.    insert into cliente values(nom,ape,dir,tel,dnii,ruc,"c0001",concat("ch",right(concat("00",c+1),3)));
  9. if tipo="esporadico" then
  10.    insert into cliente values(nom,ape,dir,tel,dnii,ruc,"c0002",concat("ce",right(concat("00",c+1),3)));
__________________
www.granideamillonaria.com
  #11 (permalink)  
Antiguo 30/09/2010, 14:37
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: validar un campo con 5 caracteres tipo int

Como llamas un procedimiento en php luego de crearlo en mysql es algo asi:
Código PHP:
Ver original
  1. $query='CALL nombreprocedure("parametro1","parametro2")';
__________________
www.granideamillonaria.com
  #12 (permalink)  
Antiguo 30/09/2010, 14:51
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: validar un campo con 5 caracteres tipo int

es cierto lo que dice Hidek1, no tome en cuenta varios detalles, sin embargo para el problema de que no te lo acepta la BD, te repito, tienes que usarlo como cadea de texto es decir tu campo debe de ser char o varchar, de lo contrario al usarlo como int te eliminará los ceros.
suerte
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #13 (permalink)  
Antiguo 06/10/2010, 11:36
Avatar de ALANCIN  
Fecha de Ingreso: septiembre-2010
Ubicación: mexico
Mensajes: 43
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: validar un campo con 5 caracteres tipo int

jajaja siento desmentirlos...jiji por ke si se puede aunke sea INT...

despues de tanta investigacion deskubri ke eso es asunto de MySQL no de PHP ya que el mismo manejador te da la opcion, para esto editamos el kampo en la parte de atributos seleccionamos la opcion

UNSIGNED ZEROFILL

y esto automaticamente cuando ingresas un numero ejemplo: 10 y si tenias ke ingresar forzosamente 5 caracteres rellena el contenido hasta kedar asi: 00010 para sto debemos definir cuantos caracteres keremos en nuestro kampo....


spero sto le sirva a alguien mas...........ok gracias a todos

Etiquetas: caracteres, int, tipo, campos
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 06:55.