Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con BD

Estas en el tema de problemas con BD en el foro de PHP en Foros del Web. Hola a todos la verdad es que no sabia donde poner este tema asi que por eso lo puse aca resulta que tengo una Bd ...
  #1 (permalink)  
Antiguo 19/01/2015, 12:11
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 8 meses
Puntos: 0
problemas con BD

Hola a todos la verdad es que no sabia donde poner este tema asi que por eso lo puse aca resulta que tengo una Bd mysql y tengo un campo que llama N1 el cual contiene datos de números 1, 2, 3, 4 etc pero necesito que tenga los números con un cero a la izquierda 01,02,03,04 etc existe algún script que me ejecute esta operación para no estar haciendo el cambio uno a uno?

De ante mano muchas gracias
  #2 (permalink)  
Antiguo 19/01/2015, 12:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problemas con BD

Dos cosas:
1) Si el campo es VARCHAR y contiene en cada registro varios digitos separados por comas, por lo pronto está mal definido, y estás guardando datos de un modo que sólo te traerá problemas a mediano y corto plazo.
2) Si el campo es numérico, no existen los ceros a la izqueirda, en consecuencia no puedes guardarlos de ese modo. Y además no es necesario hacerlo ya que existen funciones que al consultar los datos pueden mostrartelos con el formato que buscas.

Explica un poco mejor como es lo que tienes, y para qué quieres agregar ese cero. Por alli la solución no es corromper los datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/01/2015, 12:34
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: problemas con BD

Esto es php y necesitas ayuda en sql.

primero comviertes tu tipo de campo N1 a tipo String (varchar, char)

Luego aplica esto

Código MySQL:
Ver original
  1. update mi_tabla set N1 = concat('0',N1);
  #4 (permalink)  
Antiguo 19/01/2015, 12:35
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: problemas con BD

Lo puedes guardar en la base de datos como un entero, es decir, 1, 2, 3, 4, etc. y cuando lo imprimas en pantalla le añades el 0.

$input = 1;
echo str_pad($input, 2, "0", STR_PAD_LEFT);

Pero solo te valdra del 0 al 9, despues el 10 ya te imprimira 10 y no 010.

Espero te sirva
__________________
Nuevo portal de anuncios http://www.aquituanuncio.com
  #5 (permalink)  
Antiguo 19/01/2015, 12:36
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: problemas con BD

Hola primero que todo gracias por responder el campo es varchar de un largo 2 y los números no están separados por comas si no que están almacenados individualmente ejemplo:

N1
1
2
3
4

y quiere que salga
N1
01
02
03
04
05
  #6 (permalink)  
Antiguo 19/01/2015, 12:38
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: problemas con BD

Perfecto amigo muchas gracias funciono de maravilla
  #7 (permalink)  
Antiguo 19/01/2015, 12:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problemas con BD

OK. Es un simple update

Código MySQL:
Ver original
  1. UPDATE tabla
  2. SET N1 = CONCAT('0', N1)
  3. ...

o bien, si quieres que se rellenen todos con ceros hasta tener la misma longitud como cadena, pero tomando en cuenta números de mas de una cifra, usas LPAD, digamos que quieres que tengan seis caracteres de longitud:
Código MySQL:
Ver original
  1. UPDATE tabla
  2. SET N1 = LPAD(N1, 6, '0')
  3. ...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bd, mysql
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:26.