Foros del Web » Programando para Internet » PHP »

insertar valor default en un campo vacio

Estas en el tema de insertar valor default en un campo vacio en el foro de PHP en Foros del Web. la duda la explico abajo.. hola, quisiera que cuando un usuario se registra y deja un campo que no es obligatorio vacio se inserte un ...
  #1 (permalink)  
Antiguo 01/06/2009, 08:41
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Sonrisa

la duda la explico abajo..

hola, quisiera que cuando un usuario se registra y deja un campo que no es obligatorio vacio se inserte un valor de default por ejem: (no rellenado)

osea que cuando la gente este viendo su perfil no salga en blanco.
ponga:

nombre: juanito
edad:19
pagina web: no rellenado

gracias

este es el codigo que procesa el formulario:
Código PHP:
//Start session @session_start(); //Include database connection details require_once('configuracion.inc); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = false; //Connect to mysql server $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } //Function to sanitize values received from the form. Prevents SQL injection function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Sanear las variables pasadas por POST $fname = clean($_POST['fname']); $lname = clean($_POST['lname']); $login = clean($_POST['login']); $password = clean($_POST['password']); $cpassword = clean($_POST['cpassword']); $edad= clean($_POST['edad']); $pais= clean($_POST['pais']); $paginaweb = clean($_POST['paginaweb']); //Input Validations if($fname == '') { $errmsg_arr[] = 'introduzca nombre'; $errflag = true; } if($lname == '') { $errmsg_arr[] = 'introduzca apellido'; $errflag = true; } if($login == '') { $errmsg_arr[] = 'introduzca nombre de usuario'; $errflag = true; } if($password == '') { $errmsg_arr[] = 'introduzca clave'; $errflag = true; } if($cpassword == '') { $errmsg_arr[] = 'Confirme su clave'; $errflag = true; } if( strcmp($password, $cpassword) != 0 ) { $errmsg_arr[] = 'las claves introducidas no coinciden'; $errflag = true; } if($edad == '') { $errmsg_arr[] = 'introduzca su edad'; $errflag = true; } if($pais == '') { $errmsg_arr[] = 'seleccione su pais'; $errflag = true; } //Check for duplicate login ID if($login != '') { $qry = "SELECT * FROM members WHERE login='$login'"; $result = mysql_query($qry); if($result) { if(mysql_num_rows($result) > 0) { $errmsg_arr[] = 'este nombre de usuario ya esta registrado!'; $errflag = true; } @mysql_free_result($result); } else { die("error interno del servidor : vuelva mas tarde..."); } } //If there are input validations, redirect back to the registration form if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: register"); exit(); } //Create INSERT query $qry = "INSERT INTO members(edad, pais, paginaweb,firstname, lastname, login, passwd) VALUES('$edad','$pais','$paginaweb','$fname','$lname','$login','".md5($_POST['password'])."')"; $result = @mysql_query($qry); //Check whether the query was successful or not if($result) { header("location: home.htm"); exit(); }else { die("no se puedo llevar a cabo la accion vuelva a intentarlo mas tarde!"); } 

Última edición por GatorV; 01/06/2009 a las 09:39
  #2 (permalink)  
Antiguo 01/06/2009, 09:03
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: insertar valor default en un campo vacio

pues donde recibes los valores del form que me imagino que es por el metodo post hazlo mas o menos asi:

if(empty($_POST["campox"]))
{
$campox="no rellenado";
}
else
{
$campox=$_POST["campox"];
}
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 02/06/2009, 14:59
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Mensaje Respuesta: insertar valor default en un campo vacio

no consigo que funcione ,la estructura de la tabla donde guardo los datos es esta:
Código PHP:
CREATE TABLE `usuarios` (
  `
member_idint(11unsigned NOT NULL auto_increment,
  `
nombrevarchar(100) default NULL,
  `
apellidosvarchar(100) default NULL,
  `
loginvarchar(100NOT NULL default '',
  `
passwordvarchar(32NOT NULL default '',
  `
paisvarchar(20) default NULL,
  `
edadvarchar(10) default NULL,
  `
puntosvarchar(10) default NULL,
  `
paginawebvarchar(100) default NULL,
  
PRIMARY KEY  (`member_id`)
TYPE=MyISAM

y en cambiado en el scripts q procesa el form esta parte:

eh quitado este codigo que comprobaba el campo edad:
Código PHP:
}
    if(
$edad == '') {
        
$errmsg_arr[] = 'escriba su edad';
        
$errflag true
y eh puesto el que me indicas pero no surte ningun efecto:

Código PHP:
if(empty($_POST["edad"]))
{
$edad="no rellenado";
}
else
{
$edad=$_POST["edad"];

que puede fallar ?

muchas gracias por su ayuda.
  #4 (permalink)  
Antiguo 02/06/2009, 15:11
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: insertar valor default en un campo vacio

Yo preferiria dejarlo como null en la base de datos, y a la hora de mostrar el campo si hacer la comprobacion.

Código PHP:
<?php
echo "Pagina Web: ";
echo (!empty(
$row['paginaweb'])) ? $row['paginaweb'] : "No rellenado";
echo 
"<br />";
?>
  #5 (permalink)  
Antiguo 04/06/2009, 15:28
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: insertar valor default en un campo vacio

nose cambiar el valor a null ,eh utilizado este codigo y nada no lo consigo hacer funcionar puede que sea pr que la tabla no sea null?¿ x favor si me pueden ayudar a cambiarla a null y indicarme como estaria este codigo de abajo, situado dentro de mi codigo fuente,se lo agradeceria mucho ..

gracias

Código PHP:
<?php
echo "Pagina Web: ";
echo (!empty(
$row['paginaweb'])) ? $row['paginaweb'] : "No rellenado";
echo 
"<br />";
?>
[/QUOTE]
  #6 (permalink)  
Antiguo 04/06/2009, 15:40
 
Fecha de Ingreso: junio-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: insertar valor default en un campo vacio

Hola Waty90, aunque la solución que te da Ronruby es mucho más elegante y formal, si modificas tu código original, que era:
Código PHP:
if($edad == '') {
        
$errmsg_arr[] = 'escriba su edad';
        
$errflag true

podrías poner:
Código PHP:
 if($edad == NULL) {
        
$errmsg_arr[] = 'escriba su edad';
        
$errflag true;  

porque lo que estabas haciendo era compar un vacío con un null, que no es lo mismo.
NULL no es siquiera igual a NADA, es NULL. Más de un quebradero de cabeza nos trae el null cuando hacemos comparaciones, y sobre todo si vienen como valores de una consulta SQL.

Saludos!
Gustavo Echenique
  #7 (permalink)  
Antiguo 17/06/2009, 07:05
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: insertar valor default en un campo vacio

muchas gracias a todos ,al final eh usado tu codigo by-george:


Código PHP:
if(empty($_POST["edad"]))
{
$edad="no rellenado";
}
else
{
$edad=$_POST["edad"];


xao un abrazo
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 21:19.