Comunidad de diseño web y desarrollo en internet online

form sql

Citar            
MensajeEscrito el 03 Jun 2011 03:14 pm
hola,

tengo un formulario que envia los resultados por correo, ahora lo que necesito es que me los envie a una base de datos sql para yo poder generar un cvs. para yo poder abrirlo en excel.

una vez que se capturan los datos, me llama a un php para revisar los datos y generar el envio

Código PHP :

<?PHP
# Validate: Email
function check_email($email)
{
 if (ereg("[A-Za-z0-9_-]+", $email)) {
  return true;
 }
 else {
  return false;
 }
}



# RegisterGlobals OFF
$Nombre = $_POST['Nombre'];
$Cargo = $_POST['Cargo'];
$Farmacia = $_POST['Farmacia'];
$Representante = $_POST['Representante'];
$Domicilio = $_POST['Domicilio'];
$Colonia = $_POST['Colonia'];
$CP = $_POST['CP'];
$Municipio = $_POST['Municipio'];
$Estado = $_POST['Estado'];
$Telefono1 = $_POST['Telefono1'];
$Telefono2 = $_POST['Telefono2'];
$Fax = $_POST['Fax'];
$Socio = $_POST['Socio'];
$Numero = $_POST['Numero'];
$Email = $_POST['Email'];
$Entero = $_POST['Entero'];
$Distribuidor = $_POST['Distribuidor'];
$Comentarios = $_POST['Comentarios'];
$Submit = $_POST['Submit'];


# Field Validations

$validationfailed = false;

if ( (! check_email($Email))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Nombre))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Representante))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Farmacia))) {
 $validationfailed = true;
}

if ( (! check_email($Domicilio))) {
 $validationfailed = true;
}

if ( (! check_email($Telefono1))) {
 $validationfailed = true;
}


# Redirect user to FAIL page








# Email Body

$email_header = "From: $Email\n"
 . "Reply-To: $Email\n";

$email_body = "Formulario de Reservacion Evento\n"
 . "\n"
 . "Nombre: $Nombre\n"
 . "Domicilio: $Domicilio\n"
 . "Colonia: $Colonia\n" 
 . "Delegación y/o Municipio: $Municipio\n" 
 . "CP: $CP\n" 
 . "Estado: $Estado\n" 
 . "Farmacia: $Farmacia\n"
 . "Cargo: $Cargo\n"
 . "Teléfono2: $Telefono2\n"
 . "Teléfono1: $Telefono1\n"
 . "Email: $Email\n"
 . "Fax: $Fax\n"
 . "¿Es Socio?: $Socio\n"
 . "Numero de Socio: $Numero\n"
 . "Representante: $Representante\n"
 . "¿Como se Entero del Evento?: $Entero\n"
 . "¿Con que Distribuidor le Llego su Invitación?: $Distribuidor\n"
 . "Comentarios: $Comentarios\n"
 . "\n"
 . "";

# Send the email to the form owner

mail("my mail", "datos", $email_body, "$email_header");


# Dump field values to text file

# Redirect user to OK page

 header("Location: gracias.html");
 exit;
# End of PHP script
?>






que le tendria que agregar a este php para que me envie los datos a un sql llamado "consulta" y como hacerle para que me genere el cvs?

Gracias

Por dex_ter88

20 de clabLevel



 

msie8
Citar            
MensajeEscrito el 03 Jun 2011 03:27 pm
Yo los guardaría cuando se recogen y antes de enviarlos al email.

es decir debajo de esto y dentro del php:

$Nombre = $_POST['Nombre'];

$Cargo = $_POST['Cargo'];

$Farmacia = $_POST['Farmacia'];

$Representante = $_POST['Representante'];


haces tu conexion sql e insertas los datos:

Código PHP :

$host="...";
$user="...";
$pass="...";
$bd="...";

$conexion = mysql_connect ($host, $user, $pass) 
or die ("No se puede conectar con la base de datos");

$sql = "INSERT INTO Tablanombre (campo1,campo2,campo3,...) VALUES ('".$Cargo."','".$Farmacia."','".$Representante."'...);";
      
 $result = mysql_query($sql, $conexion);


Y luego puedes continuar como lo tenias.

Espero que sea lo que buscabas y te sea de ayuda. Un Saludo.

Por Silkon

63 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Jun 2011 05:26 pm
Gracias!! Funciona

Segun yo, se conecta a la base de datos (esto porque no me tira ningun error)

el problema es que cuando acceso a la base de datos sql esta no recibe cambio alguno.

el codigo fue el siguiente

Código PHP :

$host="localhost";
$user="mi usuaario"; 
$pass="mi pazz"; 
$bd="consulta";  

$conexion = mysql_connect ($host, $user, $pass)  
or die ("No se puede conectar con la base de datos");  
$sql = "INSERT INTO consulta (Nombre,Domicilio,Telefono1,) VALUES ('".$Nombre."','".$Domicilio."','".$Telefono1."');";        
$result = mysql_query($sql, $conexion);


no me indica algun error cuando se ejecuta.

en mi base de datos sql tiene el nombre de consulta y tiene
id - tipo smallint primaria unica en indice
nombre - de tipo texto
domicilio - tipo texto
...

pero cuando le doy consultar me arroja campos vacios

¿Que estará pasando?

Por dex_ter88

20 de clabLevel



 

msie8
Citar            
MensajeEscrito el 03 Jun 2011 06:32 pm
Por alguna razón el insert no se realizó.

Después de ejecutar mysql_query(), pon lo siguiente:

Código PHP :

if (mysql_errno($conexion) != 0)  { echo mysql_errno($conexion).":".mysql_error($conexion); }

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 03 Jun 2011 07:28 pm

DriverOp escribió:

Por alguna razón el insert no se realizó.

Después de ejecutar mysql_query(), pon lo siguiente:

Código PHP :

if (mysql_errno($conexion) != 0)  { echo mysql_errno($conexion).":".mysql_error($conexion); }
Lo coloque y me tira el siguiete error
1046:No database selected
Warning: Cannot modify header information - headers already sent by...

ya verifique los datos para accesar a la base y son correctos, el nombre, el usuario y el pasword.

¿será que el error esta en la base de datos y no en el php?

Por dex_ter88

20 de clabLevel



 

msie8
Citar            
MensajeEscrito el 03 Jun 2011 08:34 pm
Je... Tiene razón. Has olvidado seleccionar la base de datos usando la función mysql_select_db

Lo tienes que hacer inmediatamente después de hacer la conexión y antes de ejecutar cualquier consulta.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 03 Jun 2011 08:42 pm
jje como dicen hazta el mejor cazador se le va la liebre, :)
mira que en el codigo php en ningun momento indicas que tabla usar y el cual te da ese error
1046:No database selected
que dice que no se seleccion ninguna base de datos
mirate el manual,
http://es2.php.net/manual/es/function.mysql-select-db.php

no siempre es bueno hacer copy paste :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Jun 2011 09:36 pm
ahora me tira otro error

1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('nombre','datto','53214788')' at line 1
Warning: Cannot modify header information .....

será la base de datos, mi codigo php?

anexo el codigo completo para apreciar la falla

Código PHP :

<?PHP
# Validate: Email
function check_email($email)
{
 if (ereg("[A-Za-z0-9_-]+", $email)) {
  return true;
 }
 else {
  return false;
 }
}



# RegisterGlobals OFF
$Nombre = $_POST['Nombre'];
$Cargo = $_POST['Cargo'];
$Farmacia = $_POST['Farmacia'];
$Representante = $_POST['Representante'];
$Domicilio = $_POST['Domicilio'];
$Colonia = $_POST['Colonia'];
$CP = $_POST['CP'];
$Municipio = $_POST['Municipio'];
$Estado = $_POST['Estado'];
$Telefono1 = $_POST['Telefono1'];
$Telefono2 = $_POST['Telefono2'];
$Fax = $_POST['Fax'];
$Socio = $_POST['Socio'];
$Numero = $_POST['Numero'];
$Email = $_POST['Email'];
$Entero = $_POST['Entero'];
$Distribuidor = $_POST['Distribuidor'];
$Comentarios = $_POST['Comentarios'];
$Submit = $_POST['Submit'];

$host="localhost";
$user="myname"; 
$pass="mypass"; 
$bd="consulta";  

$conexion = mysql_connect ($host, $user, $pass)  
or die ("No se puede conectar con la base de datos"); 
$db_selected = mysql_select_db('consulta', $conexion);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
$sql = "INSERT INTO consulta (Nombre,Domicilio,Telefono1,) VALUES ('".$Nombre."','".$Domicilio."','".$Telefono1."');";        
$result = mysql_query($sql, $conexion); 
if (mysql_errno($conexion) != 0)  { echo mysql_errno($conexion).":".mysql_error($conexion); }



# Field Validations

$validationfailed = false;

if ( (! check_email($Email))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Nombre))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Representante))) {
 $validationfailed = true;
}

$validationfailed = false;

if ( (! check_email($Farmacia))) {
 $validationfailed = true;
}

if ( (! check_email($Domicilio))) {
 $validationfailed = true;
}

if ( (! check_email($Telefono1))) {
 $validationfailed = true;
}


# Redirect user to FAIL page








# Email Body

$email_header = "From: $Email\n"
 . "Reply-To: $Email\n";

$email_body = "Formulario de Reservacion Evento\n"
 . "\n"
 . "Nombre: $Nombre\n"
 . "Domicilio: $Domicilio\n"
 . "Colonia: $Colonia\n" 
 . "Delegación y/o Municipio: $Municipio\n" 
 . "CP: $CP\n" 
 . "Estado: $Estado\n" 
 . "Farmacia: $Farmacia\n"
 . "Cargo: $Cargo\n"
 . "Teléfono2: $Telefono2\n"
 . "Teléfono1: $Telefono1\n"
 . "Email: $Email\n"
 . "Fax: $Fax\n"
 . "¿Es Socio?: $Socio\n"
 . "Numero de Socio: $Numero\n"
 . "Representante: $Representante\n"
 . "¿Como se Entero del Evento?: $Entero\n"
 . "¿Con que Distribuidor le Llego su Invitación?: $Distribuidor\n"
 . "Comentarios: $Comentarios\n"
 . "\n"
 . "";

# Send the email to the form owner

mail("mymail", "Reservacion Evento", $email_body, "$email_header");


# Dump field values to text file

# Redirect user to OK page

 header("Location: gracias.html");
 exit;
# End of PHP script
?>

Por dex_ter88

20 de clabLevel



 

msie8
Citar            
MensajeEscrito el 03 Jun 2011 10:05 pm
Hola de nuevo, lo pegue así a memoria como ejemplo...

Código MySQL :

$conexion = mysql_connect ($host, $user, $pass)   
or die ("No se puede conectar con la base de datos");  
mysql_select_db($bd, $conexion);

$sql = "INSERT INTO consulta (Nombre,Domicilio,Telefono1) 
VALUES ('".$Nombre."','".$Domicilio."','".$Telefono1."');";         
$result = mysql_query($sql, $conexion); 


prueba así, le quite la , después de Teléfono1 que daría error y el cambie el select bd. Creo que va correcto.

Un Saludo.

Por Silkon

63 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Jun 2011 10:23 pm
No, aun no es correcto. me sigue tirando el mismo error

1046:No database selected

Código PHP :

$host="localhost";
$user="gared"; 
$pass="20051e"; 
$bd="consulta";  

$conexion = mysql_connect ($host, $user, $pass)  
or die ("No se puede conectar con la base de datos"); 
mysql_select_db($db, $conexion);

$sql = "INSERT INTO consulta (Nombre,Domicilio,Telefono1) 
VALUES ('".$Nombre."','".$Domicilio."','".$Telefono1."');";        
$result = mysql_query($sql, $conexion); 
if (mysql_errno($conexion) != 0)  { echo mysql_errno($conexion).":".mysql_error($conexion); }

Por dex_ter88

20 de clabLevel



 

msie8
Citar            
MensajeEscrito el 03 Jun 2011 10:29 pm
eyyy .. sorry, entre mi desesperacion no me fije en el insignificante error de bd por db... pues ya funciona!!!! ... esa unicamente fueron pruebas, en la original tengo que agregar mas de 10 datos.. pero todo bien.... estoy muy agradecido...

Por dex_ter88

20 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.