Foros del Web » Programando para Internet » PHP » CodeIgniter »

Insertar datos decimales

Estas en el tema de Insertar datos decimales en el foro de CodeIgniter en Foros del Web. Hola, tengo un problema, cuando yo antes insertaba datos en MYSQL en un campo que era decimal. (decimal 4,2) Lo hacia así: insert into tabla(campo1, ...
  #1 (permalink)  
Antiguo 19/07/2011, 08:28
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Insertar datos decimales

Hola,

tengo un problema, cuando yo antes insertaba datos en MYSQL en un campo que era decimal. (decimal 4,2) Lo hacia así:

insert into tabla(campo1, campoDecimal) values('$valor1', $valorDecimal)

Es decir el valor decimal no le ponia comillas.

Pero con codeigniter no puedo hacer eso.

El tema es que si por ejemplo en el formulario ese campo lo dejo vacio, al insertarlo en la base de datos me aparece luego 0.00 y yo no quiero que aparezca nada...

Alguien me podria decir?

Saludos.
  #2 (permalink)  
Antiguo 20/07/2011, 08:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 1 mes
Puntos: 24
Respuesta: Insertar datos decimales

Podrias poner el codigo de como lo guardas?

Si el campo de la db acepta datos nulos podrias hacer un filtro antes de guardarlo,
Código PHP:
Ver original
  1. $n = ($n == 0) ? null : $n;

Saludos
  #3 (permalink)  
Antiguo 21/07/2011, 15:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Insertar datos decimales

Hola RatoN7:

ya probé eso, y tengo como valor predeterminado NULL en la base de datos. El problema esta en como guarda codeigniter esos valores.

De todas maneras lo he arreglado, modificando las vistas para que si el valor es 0.00 o 0 o 0.0000 no lo muestre. Y ademas luego para calcular los estadisticos pongo un where $dato > 0 y listo :)

Un saludo!
  #4 (permalink)  
Antiguo 21/07/2011, 17:33
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Insertar datos decimales

Codeigniter no sobre-escribe los datos que le envies, si esta guardando ese dato es por que se lo estas enviando, antes de buscar repararlo con segundas opciones, debes primero intentar ver por que pasa eso.

Saludos.
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 22/07/2011, 04:38
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Insertar datos decimales

Hola,

ya escribi más arriba, pero explico por si no quedaba muy claro:

Antes en php normal cuando hice esta misma insercion, me pasaba lo mismo, tomando un dato vacio al insertarlo en la base de dato, si este era del tipo entero o decimal, me lo convertia en 0, aunque yo tuviese NULL como predeterminado.

Leyendo en una página,ponia que era porque cuando el dato es numero no debo poner la variable entre comillas en la sentencia:
insert into table campo values($valor). en vez de insert into table campo values('$valor').

Pero esto con codeigniter y sus funciones de Active Record no puedo cambiarlo.

Última edición por Krlinhos; 22/07/2011 a las 04:44
  #6 (permalink)  
Antiguo 22/07/2011, 08:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 1 mes
Puntos: 24
Respuesta: Insertar datos decimales

Lo que sucede es que un valor vacio es un valor vacio y NULL no es ningun valor. Hay mucha info por ahi del tema.

Sobre lo del valor predeterminado en la base de datos se usa cuando vos insertas una fila y no le asignas ningun valor a la columna con valor predeterminado, ahi se usa.

Por ejemplo, si tenes la tabla autos, columnas color y marca. Si a color le asignas un valor predeterminado de "blanco", se va utilizar cuando vos hagas algo asi:
Código MySQL:
Ver original
  1. INSERT INTO tabla_autos (marca) VALUES ('Honda')
Esa consulta va a generar una fila en donde la marca es Honda y el color es blanco(aunque no lo hayas definido el color en la consulta).

Por eso te recomiendo que hagas una especie de filtro para cambiar los valores '0'(cero) o ''(vacio) a NULL antes de insertarlo a la base de datos.(como esta en mi primer respuesta)

Espero que me haya explicado bien, Saludos
  #7 (permalink)  
Antiguo 22/07/2011, 23:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Insertar datos decimales

Si te has explicado muy bien. Muchas gracias. Lo probaré :)

Etiquetas: frameworks-y-php-orientado-a-objetos
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 13:41.