Foros del Web » Programando para Internet » PHP »

Campos de formularios e introducirlos en bases de datos

Estas en el tema de Campos de formularios e introducirlos en bases de datos en el foro de PHP en Foros del Web. Hola amigos: Estoy haciendo una web en php y mysql. Resulta que tengo en una tabla de la base de datos entre otros campos uno ...
  #1 (permalink)  
Antiguo 26/04/2005, 17:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Campos de formularios e introducirlos en bases de datos

Hola amigos:

Estoy haciendo una web en php y mysql. Resulta que tengo en una tabla de la base de datos entre otros campos uno de tipo decimal(10,2) y smallint(5).
Una de las opciones de la web es disponer de un formulario con campos y despues al darle al botón submit insertarlos en la base de datos. Pues bien, cuando dejo en blanco los campos del formulario referentes a los campos de la tabla que he dicho antes se insertan 0.00 y 0,respectivamente. He intentado hacer cuando recibo los datos lo siguiente:

.........
if ($campo1 == "") {
$campo1 = NULL;
}
if ($campo2 == "") {
$campo2 = NULL;
}
........

$campo1 y $campo2 estarán en la sentencia insert que insertará un nuevo registro en la tabla.

Si meto NULL en dichos campos ya no me sale a la hora de imprimirlos por pantalla 0.00 y 0 que es lo que quiero ya que si el usuario no inserto nada en esos campos del formulario me da igual que aparezca en blanco ya que al ser NULL aparecen en blanco.

¿Alguien me puede ayudar? Muchas gracias y espero vuestras respuestas
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #2 (permalink)  
Antiguo 27/04/2005, 03:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Perdona.. ¿cuál fue la pregunta???.. inicialmente leí que tu problema era que se insertaban "unos ceros" que no querías... pero luego mencionas:
Cita:
Iniciado por pirrilon
(...) Si meto NULL en dichos campos ya no me sale a la hora de imprimirlos por pantalla 0.00 y 0 que es lo que quiero ya que si el usuario no inserto nada en esos campos del formulario me da igual que aparezca en blanco ya que al ser NULL aparecen en blanco. (...)
Lo cuál no deja... clara la consulta.. parece que tú mismo te respondes... no entendí .

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 27/04/2005, 14:45
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Los NULL los metia directamente con el phpmyadmin, lo deberia de haber especificado.

Lo que quiero controlar es que si no se indicó nada en el formulario, es decir, se dejaron los campos vacios no se meta un 0 sino que se meta NULL.

Espero haberme explicado bien. Hasta pronto
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #4 (permalink)  
Antiguo 27/04/2005, 17:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... desde phpMyAdmin edita el formato de tu campo; habrá un combobox (lista despeglable) donde te preguntará si será un CAMPO NULO, dile que sí y listo... de hecho las opciones son "NULL" y "NOT NULL", está "not null" por defecto.. cambialo.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 27/04/2005, 18:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Ya tenía puesto dichos campos por defecto a NULL pero si dejo los campos vacíos en el formulario me inserta el 0 para el campo smallint(6) y 0.00 para el campo decimal(10,2). ¿Qué puedo hacer? Sólo me pasa con los campos que hay que introducir números
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #6 (permalink)  
Antiguo 28/04/2005, 03:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
cierto.. lo he comprobado; en teória no debería de ser así .

¿y no puedes simplemente poner algo como if($campo!=0) echo $campo; a la hora de mostrar los datos??
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 28/04/2005, 08:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
¿Y si realmente quiero introducir un 0? Lo único que quiero es controlar que cuando el campo del formulario no se rellene no se introduzca el 0 a no ser que se haga explicitamente. ¿Alguna sugerencia?
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #8 (permalink)  
Antiguo 28/04/2005, 09:03
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Me imagino que el insert q usas es este...
mysql_query("INSERT INTO tabla (id, campo1, campo2) VALUES (NULL, ".$campo1", ".$campo2.")") or die(mysql_error());

si ponés antes de eso

Código PHP:
if ($campo1 == "") {
$campo1 "NULL";

con comillas para que no tenga valor nulo sino que escriba nulo y a MySQL le llegue NULL en vez de vacio funciona bien?
  #9 (permalink)  
Antiguo 28/04/2005, 09:59
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Es el tipo de campo que designaste a la base de datos mysql, por defecto si viene vacio te lo llena de 0.00

Saludos,
  #10 (permalink)  
Antiguo 28/04/2005, 10:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
Seppo no funciona

dwaks si eso ya lo sé, lo que quiero es que si en el formulario no se introdujo nada NO se meta 0

Gracias a todos por las respuestas, pensaba que esto era una cosa trivial y que le habría pasado a más gente
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #11 (permalink)  
Antiguo 28/04/2005, 11:10
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Cambiale el tipo al campo de mysql.

Saludos,
  #12 (permalink)  
Antiguo 28/04/2005, 12:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 20 años, 6 meses
Puntos: 1
dwaks cambiándole el tipo sí funciona aunque no sé si será la solución más acertada pero bueno, al menos ya no se me muestran los 0

Muchas gracias a tod@s
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #13 (permalink)  
Antiguo 28/04/2005, 12:18
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
De acuerdo Perfecto, el asunto es que funcione.

Perfecto,



Saludos,
  #14 (permalink)  
Antiguo 28/04/2005, 18:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
.. pués depende tus requerimentos... pero en sí no sería la solución "correcta"...
Cita:
Iniciado por pirrilon
¿Y si realmente quiero introducir un 0? Lo único que quiero es controlar que cuando el campo del formulario no se rellene no se introduzca el 0 a no ser que se haga explicitamente. ¿Alguna sugerencia?
tampoco estasería una solución correcta pero... cuando un usuario teclee un 0 explicitamente podrías guardar en otro campo un valor que te lo indique (un simple "sí"), así para imprimir ó no te basas en el valor de este campo ...

Bla!... mejor lo que tienes ahora .. pero la idea es aplicable .

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #15 (permalink)  
Antiguo 29/04/2005, 07:44
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Consejo

Existe un gran consejo que me dieron:

Si funciona es porque esta bien.

Saludos,
  #16 (permalink)  
Antiguo 29/04/2005, 15:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Yo me sé otro:
"El que esté bien no significa que no pueda estar mejor!" ...

Igual me quedó con "lo que hay" (la solución que funcionó), pero no me quedo con la duda... (personalmente).

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 22:27.