Foros del Web » Programando para Internet » PHP »

¿Cómo puedo crear una condicion antes de subir los datos a la db?

Estas en el tema de ¿Cómo puedo crear una condicion antes de subir los datos a la db? en el foro de PHP en Foros del Web. Me explico; 1) tengo un formulario de registro de datos. 2) los datos pasan por post a un archivo php, que sube los datos a ...
  #1 (permalink)  
Antiguo 29/03/2007, 21:10
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Sonrisa ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Me explico;
1) tengo un formulario de registro de datos.
2) los datos pasan por post a un archivo php, que sube los datos a la base como un registro nuevo y ese mismo archivo manda 2 mails, uno de aviso al usuari que se ha registrado y el otro mail a mi como respaldo.
Hasta qui no hay problema, todo funciona de maravilla.

Sin embargo, me han llegado dos mails sin información y efectivamente, en la base de datos se crearon dos registros pero sin datos, estan vacíos; lo de menos es llenarlos a mano, como se diria aqui en mi tierra, pero el chiste es que sea automatico, no??

La pregunta (por fin) es posible comprobar que las variables contengan datos antes de crear un nuevo registro en la base???

Yo se que sí, pero no soy muy buena en eso de las condiciones if y ese rollo, alguien me puede orientar o decir donde encuentro literatura al respecto, por que ya revise las Faqs y no encuentro exactamente lo que quiero.

mil gracias por sus comentarios
  #2 (permalink)  
Antiguo 29/03/2007, 21:13
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Perdon aqui esta el código que estoy usando.

Código PHP:
<?
   $nombre 
$_POST['nombre'];
   
$rsocial $_POST['rsocial'];
   
$rfc $_POST['rfc'];
   
$descripcion $_POST['descripcion'];
   
$domicilio $_POST['domicilio'];
   
$colonia $_POST['colonia'];
   
$municipio $_POST['municipio'];
   
$parqind $_POST['parqind'];
   
$ciudad $_POST['ciudad'];
   
$estado $_POST['estado'];
   
$cp $_POST['cp'];
   
$ca $_POST['ca'];
   
$tel1 $_POST['tel1'];
   
$tel2 $_POST['tel2'];
   
$fax $_POST['fax'];
   
$web $_POST['web'];
   
$contacto $_POST['contacto'];
   
$puesto $_POST['puesto'];
   
$email $_POST['email'];
   
$originsumo $_POST['originsumo'];
   
$prod1 $_POST['prod1'];
   
$captura $_POST['captura']; 
   
$boletin $_POST['boletin'];
   
include (
"conectar.php");
mysql_select_db ("mi_base"$conectar);
$result=mysql_query("INSERT INTO stands (nombre, rsocial, rfc, girocom, sector, camara, descripcion, domicilio, colonia, municipio, parqind, ciudad, estado, cp, ca, tel1, tel2, fax, web, contacto, puesto, email, originsumo, prod1, captura, boletin) VALUES ('$nombre', '$rsocial', '$rfc', '$girocom', '$sector', '$camara', '$descripcion', '$domicilio', '$colonia', '$municipio', '$parqind', '$ciudad', '$estado', '$cp', '$ca', '$tel1', '$tel2', '$fax', '$web', '$contacto', '$puesto', '$email', '$originsumo', '$prod1', '$captura', '$boletin')"$conectar) or die ('no se realizo el registro de la empresa, vuelva al formulario.');
?>
Saludos.
  #3 (permalink)  
Antiguo 30/03/2007, 01:11
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Hola Domy,

creo que en el post que te respondí aquí, http://www.forosdelweb.com/f18/select-no-ayuda-sacar-resultado-que-quiero-477024/ , tienes las funciones que puedes utilizar ... isset() y/o empty().

Supongo que tu lo que necesitas es una validación de datos, yo te aconsejaría que los hicieras en la parte cliente (javascript) y en la parte servidor (funciones antes mencionadas de php). Tambien en el servidor por si acaso el cliente tuviera desactivada la opción de aceptar javascript.

Solo tendrias que ver qué campos del formulario son obligatorios y aplicarles esas funciones para emitir un mensaje de error en caso de que vayan vacios, ok?

Espero que entiendas,

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #4 (permalink)  
Antiguo 30/03/2007, 12:46
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

hola de nuevo Puchitol, gracias por responder.
No es el mismo problema, es otra parte de mi pagina; lo que pasa es que me estan creando registros en mi base vacios y (yo creo) que es cuando entran directamente a la direccion del php que crea los registros en la base de datos sin haber introducido ningun datos pues logicamente se saltaron el formulario.

Entonces lo que quiero hacer es que antes de que cree un registro en la base, verifique si las variables estan llenas, por decirlo de alguna forma.

Lo que tu me dices (checa que apenas estoy aprendiendo a utilizar funciones e y ese rollo) es que se aplica isset y empty igual que en mi otro problema; es decir que:

Por ponerlo mas facil solo elijo una variable que es la que se va a comprobar antes crear el registro en la base y quedaria algo asi:

Código PHP:
<? 
   $nombre 
$_POST['nombre']; 
   
$rsocial $_POST['rsocial']; 
   
$rfc $_POST['rfc']; 
   
$descripcion $_POST['descripcion']; 
   
$domicilio $_POST['domicilio']; 
   
$colonia $_POST['colonia']; 
   
$municipio $_POST['municipio']; 
   
$parqind $_POST['parqind']; 
   
$ciudad $_POST['ciudad']; 
   
$estado $_POST['estado']; 
   
$cp $_POST['cp']; 
   
$ca $_POST['ca']; 
   
$tel1 $_POST['tel1']; 
   
$tel2 $_POST['tel2']; 
   
$fax $_POST['fax']; 
   
$web $_POST['web']; 
   
$contacto $_POST['contacto']; 
   
$puesto $_POST['puesto']; 
   
$email $_POST['email']; 
   
$originsumo $_POST['originsumo']; 
   
$prod1 $_POST['prod1']; 
   
$captura $_POST['captura'];  
   
$boletin $_POST['boletin']; 

if(isset(
$_POST['nombre']) && !empty($_POST['nombre'])) { 
    include (
"conectar.php"); 
mysql_select_db ("mi_base"$conectar); 
$result=mysql_query("INSERT INTO stands (nombre, rsocial, rfc, girocom, sector, camara, descripcion, domicilio, colonia, municipio, parqind, ciudad, estado, cp, ca, tel1, tel2, fax, web, contacto, puesto, email, originsumo, prod1, captura, boletin) VALUES ('$nombre', '$rsocial', '$rfc', '$girocom', '$sector', '$camara', '$descripcion', '$domicilio', '$colonia', '$municipio', '$parqind', '$ciudad', '$estado', '$cp', '$ca', '$tel1', '$tel2', '$fax', '$web', '$contacto', '$puesto', '$email', '$originsumo', '$prod1', '$captura', '$boletin')"$conectar) or die (mysql_error()); 

?>
segun entiendo lo que lei en el manual de php, isset me va a comprobar si la variable esta definida, es decir si existe; y !empty me va a comprobar si la es distinta a vacía, es decir si existe contenido en ella. Estoy bien o me regreso????
  #5 (permalink)  
Antiguo 02/04/2007, 00:51
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Hola Domy,

pues si, seria algo asi. Solo te faltaria la parte del else.

if( isset(...) && !empty(...)) {
....
} else {
# aqui deberias poner el mensaje de que el campo/s son obligatorio/s
echo "Campo XX es obligatorio";
# y un enlace al fomulario
echo "<a href=...>formulario</a>
}

En cuanto a lo de las funciones estas en lo cierto, ok?

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #6 (permalink)  
Antiguo 02/04/2007, 12:34
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Hola puchitol, mil gracias por la ayuda, pero no me funcionó; solo me dice que no se hizo el registro correctamente, pero no evita que se cree un registro en la base de datos.

En fin. voy a seguir insistiendo, capaz que alguna coma o comilla esta mal, te cuento al rato, gracias de nuevo.
  #7 (permalink)  
Antiguo 03/04/2007, 00:57
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: ¿Cómo puedo crear una condicion antes de subir los datos a la db?

Hola de nuevo,

pues es extraño, no creo que sea una coma o comilla, en este caso te arrojaria algun error, no crees? Haz una cosa al inicio del script coloca esta funcion: error_reporting(E_ALL); Con ella haras que PHP muestre todos los mensajes y errores que se producen en tu aplicacion. Ejecuta el script y a ver si te "dice" algo ...

Me extraña muchisimo que ese codigo no te detecte que llegan campos vacios.

$nombre = $_POST['nombre'];
if( empty($nombre) ) {
echo "Se debe informar el campo 'Nombre'<br/>";
# enlace a formulario ...
} else {
# seguir con la insercion enm la BBDD ...
}

prueba lo de arriba y lo de los errores y me sigues comentando, ok?

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
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 15:30.