Foros del Web » Programando para Internet » PHP »

Forumlario Web y SQL

Estas en el tema de Forumlario Web y SQL en el foro de PHP en Foros del Web. Weno yo tengo un formulario hecho en html, con los campos Nombre, Apellidos y edad y quiero que sea guardado en una BD, y no ...
  #1 (permalink)  
Antiguo 25/05/2009, 01:54
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Forumlario Web y SQL

Weno yo tengo un formulario hecho en html, con los campos Nombre, Apellidos y edad y quiero que sea guardado en una BD, y no ser enviado por mail

Supongo que es cambiar el Fuction del html, y seria poner por ejemplo un enviar.php.

Lo que no tengo claro es el codigo PHP que deberia poner en el enviar.php para que se almacenara en el MySQL.

Esper vuestras respuestas.
Gracias de Antemano.
  #2 (permalink)  
Antiguo 25/05/2009, 02:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Forumlario Web y SQL

Lo primero que tienes que hacer es recoger las variables POST.
Luego tienes que construir tu query
Y por ultimo usar las funciones que tiene PHP.
  #3 (permalink)  
Antiguo 25/05/2009, 02:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

¿Ya tienes hecha la pagina de PHP?
  #4 (permalink)  
Antiguo 25/05/2009, 02:24
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

No tengo mucha idea sobre PHP, si me pudierais facilitar un codigo, y ya ponerme a trabajar con el lo agreceria mil :).

@abimaelrc, no no tengo hecho el PHP aun.

Muchas gracias por vuestras respuestas :)
  #5 (permalink)  
Antiguo 25/05/2009, 02:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

¿Otra pregunta sabes base de datos?

Esto lo pregunto para saber como darte un codigo
  #6 (permalink)  
Antiguo 25/05/2009, 02:38
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Conocimientos basicos tengo, crear tablas, relaciones, consultas SQL, formularios..
  #7 (permalink)  
Antiguo 25/05/2009, 02:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

dame el codigo de la pagina de html que hiciste yo te creo lo basico que debes hacer para insertar en mysql con php.

Si no tienes el mysql creado me dejas saber para poder hacer un codigo que te ayude
  #8 (permalink)  
Antiguo 28/05/2009, 01:09
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Disculpa la tardanza pero estube algo liado estos 2 dias.

Código HTML:
<form action="mailto:[email protected]" method="post" enctype="text/plain" name="form1" id="form1">
    <center><table width="326" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td>Nombre:</td>
        <td>&nbsp;</td>
        <td><input name="textfield" type="text" size="45" maxlength="32" class="campo" /></td>
      </tr>
      <tr>
        <td>E-Mail:</td>
        <td>&nbsp;</td>
        <td><input name="textfield2" type="text" size="45" maxlength="40" class="campo" /></td>
      </tr>
    </table>
    <table width="333" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="80">Telefono:</td>
        <td width="50">&nbsp;</td>
        <td width="196"><input name="textfield3" type="text" size="20" maxlength="15" class="campo"/></td>
      </tr>
    </table>
    <table width="334" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="82">Mensaje:</td>
        <td width="10">&nbsp;</td>
        <td width="235"><textarea name="textarea" cols="42" rows="10" class="campo"></textarea></td>
      </tr>
    </table>
    <table width="334" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="100">&nbsp;</td>
        <td width="51"><input type="submit" name="Submit" value="Enviar" class="campo"/></td>
        <td width="106">&nbsp;</td>
        <td width="52"><input type="reset" name="Submit2" value="Borrar" class="campo"/></td>
        <td width="100">&nbsp;</td>
      </tr>
    </table> 
Eso es mas o menos el HTML, la base de datos la tengo creada en el MySQL supongo que tendre que crear una en el hosting no?

Gracias de nuevo :)
  #9 (permalink)  
Antiguo 28/05/2009, 01:20
 
Fecha de Ingreso: diciembre-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Forumlario Web y SQL

Vale pues ahora lo que tienes que hacer es en vez de enviar el formulario a un email, lo envia a un fichero PHP com datos.php:

Código:
<form action="datos.php" method="post" enctype="text/plain" name="form1" id="form1">
En el fichero datos.php recoges los datos mediante la variable $_POST, que viene todo en un array. Mírate un poquillo un tuto de php y verás que es muy simple

Código:
$_POST['nombredelvampo']
Y por último construyes en una cadena de texto la sentencia SQL que te permite insertar en la BBDD.
  #10 (permalink)  
Antiguo 29/05/2009, 00:55
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Sigo sin saber como va :(, muchas gracias elbrocheta, pero lo que es el PHP no se como construirlo.

Otra duda que tengo la BBDD la tengo que tener creada en mi hosting o como ?

Gracias a todos :)
  #11 (permalink)  
Antiguo 29/05/2009, 01:53
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Siento el doble post.

Tengo el siguiente Cod PHP
Código PHP:
<?php


//Damos nombres a las variables.
$nombre $_POST['nombre'];
$apellido $_POST['e-mail'];
$telefono $_POST['telefono']
//Conectar a la base de datos (bd).
mysql_connect(<mysql1.100ws.com >, <sansan486_BBDD>, <pass>);
mysql_query("INSERT INTO TEST (nombre , e-mail, telefono) VALUES ('$nombre', '$e-mail', '$telefono')";

?>
Tengo creado la BBDD en el hosting, pero cuando la envio me sale "El sitio web tiene un error de programación"

**
La BBDD tiene lo siguientes campos.
Campo , Tipo , Cotejamiento , Atributos ,Nulo ,Extra
id , mediumint(255) , , ,No ,auto_increment
nombre , varchar(250) , latin1_swedish_ci , ,No ,
e-mail ,varchar(250) ,latin1_swedish_ci , , No ,
telefono ,smallint(9) , , ,No
**

No se en que falla


Aqui esta la direccion donde estoy haciendo las pruebas.
kewon.100webspace.net

Última edición por Kewon; 29/05/2009 a las 02:03
  #12 (permalink)  
Antiguo 29/05/2009, 07:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

Disculpa que me tardara pero aqui tienes esto es todo lo que vas a poner en enviar.php

Código PHP:
<?php
/*
Crera la base de datos y la tabla

CREATE DATABASE  `Kewon` ;

DROP TABLE IF EXISTS `tabla1`;
CREATE TABLE IF NOT EXISTS `tabla1` (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(255) NOT NULL,
  `Email` varchar(255) NOT NULL,
  `Telefono` varchar(255) NOT NULL,
  `Mensaje` text NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM;
*/

//Para definir variables de la base de datos
define('SQL_HOST','localhost');
define('SQL_USER','root');
define('SQL_PASS','');
define('SQL_DB','Kewon');

//Para conectarse a la base de datos
$conn mysql_connect(SQL_HOSTSQL_USERSQL_PASS) or die('Could not connect to MySQL database. ' mysql_error());
mysql_select_db(SQL_DB,$conn);

//Para insertar en al base de datos
$sql "INSERT INTO `tabla1` (`Nombre`, `Email`, `Telefono`, `Mensaje`) 
    VALUES (
        '"
.$_POST["Nombre"]."', 
        '"
.$_POST["Email"]."', 
        '"
.$_POST["Telefono"]."', 
        '"
.$_POST["Mensaje"]."');";
$r mysql_query($sql) or die();

//Para enviar el email
$Subject "Aquí va el titulo para enviar al usuario";
$Message "Aquí va el mensaje que quieres que salga en el email de la persona";
//Headers debes solamente cambiar y poner tu email entre medio de 
//From:    \r\n   
//el From y \r\n debes dejar eso, no lo borres
$Headers "From: [email protected]\r\n";
mail($_POST["Email"], $Subject$Message$headers);

header("Location: index.php");
?>

Última edición por abimaelrc; 01/06/2009 a las 07:17
  #13 (permalink)  
Antiguo 03/06/2009, 03:06
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

No se lo que puede fallar, pero tengo ya creado este archivo tal y como esta descrito aki, cambiando sql user.. etc, y cuando hago el submit, me envia a una pagina en blanco y no me guarda los registros en la BD
  #14 (permalink)  
Antiguo 03/06/2009, 07:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

escribe el codigo para ver
y antes de escribir el codigo escribe en la pagina que tengas para grabar datos en el database var_dump($_REQUEST);

Me dejas saber que te escribio para poder decirte
  #15 (permalink)  
Antiguo 08/06/2009, 00:52
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Aqui te dejo el codigo del php.

Código PHP:
<?php
/*
Crera la base de datos y la tabla 

CREATE DATABASE  `Kewon` ;

DROP TABLE IF EXISTS `tabla1`;
CREATE TABLE IF NOT EXISTS `tabla1` (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(255) NOT NULL,
  `Email` varchar(255) NOT NULL,
  `Telefono` varchar(255) NOT NULL,
  `Mensaje` text NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM;
*/

//Para definir variables de la base de datos
define('SQL_HOST','mysql1.100ws.com');
define('SQL_USER','sansan486_BBDD');
define('SQL_PASS','......');
define('SQL_DB','Kewon');

//Para conectarse a la base de datos
$conn mysql_connect(SQL_HOSTSQL_USERSQL_PASS) or die('Could not connect to MySQL database. ' mysql_error());
mysql_select_db(SQL_DB,$conn);

//Para insertar en al base de datos
$sql "INSERT INTO `tabla1` (`Nombre`, `Email`, `Telefono`, `Mensaje`) 
    VALUES (
        '"
.$_POST["Nombre"]."', 
        '"
.$_POST["Email"]."', 
        '"
.$_POST["Telefono"]."', 
        '"
.$_POST["Mensaje"]."');";
$r mysql_query($sql) or die();

//Para enviar el email
$Subject "Formulario";
$Message "Gracias por enviar vuestros datos, ya han sido guardados en nuestra base de datos";
//Headers debes solamente cambiar y poner tu email entre medio de 
//From:    \r\n   
//el From y \r\n debes dejar eso, no lo borres
$Headers "From: [email protected]\r\n";
mail($_POST["Email"], $Subject$Message$headers);

header("Location: index.php");
?>
Tal y como me lo pasastes tu pero cambiando el servidor etc..

Y aki el index
Código PHP:
<head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>formulario</title>
<
link href="css/formulario.css" media="screen" rel="stylesheet" type="text/css" />
</
head>

<
body style="background-color: transparent;">
<
div id="Layer1">
  <
form action="datos.php" method="post" enctype="text/plain" name="form1" id="form1">
    <
center><table width="326" border="0" cellspacing="0" cellpadding="0">
      <
tr>
        <
td>Nombre:</td>
        <
td>&nbsp;</td>
        <
td><input name="textfield" type="text" size="45" maxlength="32" class="campo" /></td>
      </
tr>
      <
tr>
        <
td>E-Mail:</td>
        <
td>&nbsp;</td>
        <
td><input name="textfield2" type="text" size="45" maxlength="40" class="campo" /></td>
      </
tr>
    </
table>
    <
table width="333" border="0" cellspacing="0" cellpadding="0">
      <
tr>
        <
td width="80">Telefono:</td>
        <
td width="50">&nbsp;</td>
        <
td width="196"><input name="textfield3" type="text" size="20" maxlength="15" class="campo"/></td>
      </
tr>
    </
table>
    <
table width="334" border="0" cellspacing="0" cellpadding="0">
      <
tr>
        <
td width="82">Mensaje:</td>
        <
td width="10">&nbsp;</td>
        <
td width="235"><textarea name="textarea" cols="42" rows="10" class="campo"></textarea></td>
      </
tr>
    </
table>
    <
table width="334" border="0" cellspacing="0" cellpadding="0">
      <
tr>
        <
td width="100">&nbsp;</td>
        <
td width="51"><input type="submit" name="Submit" value="Enviar" class="campo"/></td>
        <
td width="106">&nbsp;</td>
        <
td width="52"><input type="reset" name="Submit2" value="Borrar" class="campo"/></td>
        <
td width="100">&nbsp;</td>
      </
tr>
    </
table>
    <
table width="334" height="30" border="0" cellpadding="0" cellspacing="0">
      <
tr>
        <
td><p>Si por cualquier motivo no te deja enviar el Correo por aqui hazlo desde tu E-mail a : .....@hotmail.com </p>
          <
p align="center">Disculpe las Molestias. </p></td>
      </
tr>
    </
table>
    </
center>
  </
form>
</
div>
</
body>
</
html
  #16 (permalink)  
Antiguo 09/06/2009, 00:56
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Aver si alguien me puede hechar una manita y decirme en que falla.

Gracias de Antemano
  #17 (permalink)  
Antiguo 11/06/2009, 01:08
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Aver si alguien se anima a resolverme el problema llevo varis semanas intentando hacerlo y no se porque no me funciona :(
  #18 (permalink)  
Antiguo 11/06/2009, 08:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

Ok ya veo el error. Es super sencillo tienes que los campos input cambiarle el nombre de acuerdo a lo que se supone que se envie

Me refiero

<input name="textfield" type="text" size="45" maxlength="32" class="campo" />

debe ser

<input name="Nombre" type="text" size="45" maxlength="32" class="campo" />

---------------------------------------------------------

<input name="textfield2" type="text" size="45" maxlength="40" class="campo" />

debe ser

<input name="Email" type="text" size="45" maxlength="40" class="campo" />

-----------

asi sucesivamente acuerdate que en la parte donde añade la información dice que esta buscando unos campos llamados

'".$_POST["Nombre"]."',
'".$_POST["Email"]."',
'".$_POST["Telefono"]."',
'".$_POST["Mensaje"]."');";

y tu estas enviando

'".$_POST["textfield"]."',
'".$_POST["textfield2"]."',
'".$_POST["textfield3"]."',
'".$_POST["textarea"]."');";

corrige eso y me dejas saber. Pero corrigelo en el <form>


Tambien en el
$Headers = "From: [email protected]\r\n";

Coloca ahi tu email o el email que quieras que la persona que reciba el email sepa de donde vino.
  #19 (permalink)  
Antiguo 15/06/2009, 01:26
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Cambien tal y como dijistes pero sigue sin ir. Probe a hacerlo desde cero y nada.

Código PHP:
/* 
Crera la base de datos y la tabla  

CREATE DATABASE  `Kewon` ; 

DROP TABLE IF EXISTS `tabla1`; 
CREATE TABLE IF NOT EXISTS `tabla1` ( 
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT, 
  `Nombre` varchar(255) NOT NULL, 
  `Email` varchar(255) NOT NULL, 
  `Telefono` varchar(255) NOT NULL, 
  `Mensaje` text NOT NULL, 
  PRIMARY KEY (`ID`) 
) ENGINE=MyISAM; 
*/ 
Esta parte del codigo porque esta como comentario? probe a quitarlo y me daba error, asike lo deje tal cual.

No se que puede ser y me estoy volviendo loco :(
  #20 (permalink)  
Antiguo 15/06/2009, 07:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Forumlario Web y SQL

Esa parte del codigo es para que lo ingreses en la base de datos. Copia y pega con phpmyadmin el hace el resto
  #21 (permalink)  
Antiguo 19/06/2009, 02:05
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Forumlario Web y SQL

Sigue sin funcionar, lo unico que me hace escrearme un registro en blanco en la Base de Datos, no se que puede fallar
  #22 (permalink)  
Antiguo 19/06/2009, 03:56
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Forumlario Web y SQL

Cita:
Iniciado por Kewon Ver Mensaje
Sigue sin funcionar, lo unico que me hace escrearme un registro en blanco en la Base de Datos, no se que puede fallar
Seguro que creastes bien la base de datos?

1. localhost/phpmyadmin
2. entras
3. creas una base de datos con el nombre Kewon, por lo visto
4. Vas a sql, copias y pegas el codigo del sql y le das a ejecutar

Si no te sale asi porque no le puedes cojer el truco.... buscate el HEIDISQL instalalo, haz la conexion con la BD y crealo alli, aver si asi te sale mas facil
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:58.