Foros del Web » Programando para Internet » PHP »

Valor Nulo guarda valores vacios desde formulario

Estas en el tema de Valor Nulo guarda valores vacios desde formulario en el foro de PHP en Foros del Web. Buenas tardes amigos del foro, tengo un problema con lo siguiente, estoy creando una pagina web este es el codigo de mi formulario: <form id="form_datos_generales" ...
  #1 (permalink)  
Antiguo 09/05/2012, 11:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
Valor Nulo guarda valores vacios desde formulario

Buenas tardes amigos del foro, tengo un problema con lo siguiente, estoy creando una pagina web este es el codigo de mi formulario:

<form id="form_datos_generales" name="form_datos_generales" method="post" action="update.php">

<input type="text" name="street" />
<input type="text" name="zipcode"/>
<input type="text" name="cv"/>
<input class="submit" type="submit" value="Save" />

y este es el codigo del archivo update.php que es el que recibe los valores para actualizar la bd:


<?php
include_once('php/connection.php');
$street=$_POST['street'];
$zipcode =$_POST['zipcode'];
$cv=$_POST['cv'];
$update = "UPDATE users SET direccion='$street', codigo_postal='$zipcode' WHERE ID = '$cv'";
mysql_query($update)or die(mysql_error());
?>

Mi problema esque en mi base de datos de mysql los campos direccion y codigo_postal pueden tener valores nulos y quisiera que si alguien deja en blanco estos campos en el formulario se guarde el valor NULL en la bd pero cuando dejo vacios los campos desde el formulario se guarda un valor vacio en mysql, que debo hacer para que se guarden valores NULL ???
  #2 (permalink)  
Antiguo 09/05/2012, 13:34
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Valor Nulo guarda valores vacios desde formulario

Hola, arturo1910
Claro! es lógico que eso pase así, por que NULL no es lo mismo que ''
obviamente no escriben nada en la cajita de texto, pero no por eso va a quedar NULL ya que esta quedando guardado '' .....

La forma de que queden nulos, es en el momento de crear el registro(INSERT), es decir, no mencionar esos campos en la consulta...

La otra forma es después de estar creado verificar si $street y $zipcode o las que sean, no esten vacias, si lo estan les mandas NULL
ejemplo
Código PHP:
Ver original
  1. if (empty($street)){
  2.   $street=NULL;
  3. }
  4. $update = "UPDATE users SET direccion='$street', codigo_postal='$zipcode' WHERE ID = '$cv'";
  5. mysql_query($update)or die(mysql_error());

En realidad lo que hago es enviar una cadena de texto 'NULL'
Basate en ese ejemplo...
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 09/05/2012, 14:58
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Valor Nulo guarda valores vacios desde formulario

Hola,
lo mas facil es entrar a phpmyadmin entras a la base de datos y seleccionas la tabla donde guardas los datos, luego en el menú de de arriba le das en estructura y luego en editar o cambiar el campo que quieras colocar por defecto NULL.

La Estructura de la tabla sale algo asi:

Campo ------------------- Nombre de la tabla
Tipo --------------------- VARCHAR
Longitud/Valores*1 --------- 20
Predeterminado2 ----------- None
------------------------- |___|
Cotejamiento -------------- latin1_swedish_ci
Atributos
Nulo
AUTO_INCREMENT
Comentarios
MIME-type
Transformación del navegador
Opciones de transformación3

En la parte que dice Predeterminado2 ----------- None le das en el select y colocas Personalizado, en algunos casos dice Como fuera definido y en el cajón de abajo colocas el valor por defecto en este caso NULL y eso es todo.

cuando vallas a llenar la tabla y no definas ese campo, llenara por defecto como Null

Espero que te sirva, saludos
  #4 (permalink)  
Antiguo 09/05/2012, 15:19
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: Valor Nulo guarda valores vacios desde formulario

si el valor es dado desde un formulario con POST y la variable esta vacía podrías hacer esto:

Hice una funcion llamada vecDefault(Array $array, string $value(opcional)), que devuelve el array, definiendo las pocisiones vacias por un valor por defecto.

USO:
Código PHP:
//La función VecDefault
function VecDefault($VecDefault,$a=NULL){foreach($VecDefault as $b=>$c){$VecDefault[$b]=$VecDefault[$b]?$VecDefault[$b]:$a;}return $VecDefault;}

//Para usar solo es pasarle el arreglo $_POST o $_GET, 
//dependiendo como pases los valores con el formulario.

//Tambien sirve para cualquier otro arreglo por ejemplo este:
$vectorlatino = Array('hola','');
var_dump(VecDefault($vectorlatino));

//Devolvera:
/* 
array(2) {
  [0]=>
  string(4) "hola"
  [1]=>
  NULL
}
*/

//Si lo mandas los datos por POST seria:
$_POST VecDefault($_POST);

//Devolvera:
/* 
array(2) {
  ["valor1"]=>
  string(4) "nada"
  ["valor2"]=>
  NULL
}
*/ 
La función VecDefault($array,$valor(opcional)) necesita un array y opcional el valor por defecto, si no se define este colocara los campos vacíos como NULL.

Espero te sirva, saludos...

Etiquetas: formulario, mysql, nulo, sql, vacios, guardar
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:15.