viernes, 1 de julio de 2011

21. Almacenar datos en una base de datos por medio de la Web

Hola, ya estoy aquí de nuevo. El artículo de hoy lo voy a dedicar a insertar datos en un formulario de una página Web y esos datos se almacenarán en la base de datos MySql.
En la entrada anterior creamos un archivo conec.php por medio de este archivo nos conectabamos a la base de datos. Por lo que es un archivo imprescindible para los archivos que vamos a crear ahora. Vamos a crear un formulario donde tengamos que insertar los datos que coinciden con los datos que deben almacenarse en MySql. Si hacemos un poco de memoria, los datos que pusimos en la base de datos eran los siguientes:
id tinyint(3) unsigned NOT NULL auto_increment,
nombre varchar(30) DEFAULT '0' ,
apellidos varchar(30) DEFAULT '0'
direccion varchar(30) DEFAULT '0' ,
telefono varchar(30) DEFAULT '0' ,
email varchar(30) DEFAULT '0' ,
PRIMARY KEY (id)

Pues bien, vamos a crear un formulario en el que tengamos que insertar estos datos. Creamos el archivo insertdat.php, lo vemos en el navegador:



















El código del archivo es el siguiente:
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Insertar datos con bases de datos MySQL</H1>
<FORM ACTION="agregdat.php">
<TABLE>
<TR>
<TD>Nombre:</TD>
<TD><INPUT TYPE="text" NAME="nombre" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Apellidos:</TD>
<TD><INPUT TYPE="text" NAME="apellidos" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Dirección:</TD>
<TD><INPUT TYPE="text" NAME="direccion" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Teléfono:</TD>
<TD><INPUT TYPE="text" NAME="telefono" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Email:</TD>
<TD><INPUT TYPE="text" NAME="email" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar">
</FORM>
<hr>
<?php
include("conec.php");
$link=Conectarse();
$result=mysql_query("select * from clase",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD>&nbsp;Nombre</TD>
<TD>&nbsp;Apellidos&nbsp;</TD>
<TD>&nbsp;Direccion&nbsp;</TD>
<TD>&nbsp;Telefono&nbsp;</TD>
<TD>&nbsp;Email&nbsp;</TD>
</TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp
;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td></tr>",
$row["nombre"],$row["apellidos"],$row["direccion"],$row["telefono
"],$row["email"]);
}
mysql_free_result($result);
?>
</table>
</body>
</html>

Este archivo sirve solo para insertar los datos en el formulario. NO para almacenarlos en la base de datos. Para guardar los datos en MySql crearemos otro archivo llamado agregdat.php cuyo código es el siguiente:

<?php
include("conec.php");
$link=Conectarse();
$Sql="insert into clase
(nombre,apelldios,dirección,telefono,email) values
('$nombre','$apellidos', '$direccion', '$telefono', '$email')";
mysql_query($Sql,$link);
?>

Hacemos una prueba insertando datos en el formulario:



















Hacemos clic sobre el botón Grabar.
Ahora abrimos nuestra base de datos en MySql,  curso, seleccionamos la tabla clase y vemos que los datos se han almacenado en la tabla curso:





























Y si abrimos el fichero insertdat.php en el navegador, podemos comprobar que el dato almacenado aparece en la página:


























Vamos a insertar dos registros más.

Nombre: Enrique
Apellidos: Doñate
Dirección: C/ Arriba, 3
Teléfono: 600201412         

Nombre: Manuel
Apellidos: Ruiz
Dirección: C/ Abajo, 2
Teléfono: 912541010         
Email: mruiz@gmail.com

Actualizamos la página insertardat.php y podemos comprobar que los datos se han almacenado:






















Aparece dos veces el último registro es porque sin querer he pulsado dos veces el botón grabar.

Vamos a la base de datos para cerciorarnos de que se han guardado los datos:






















Con el aspa roja podemos eliminar el registro para que no hayan dos iguales. Más adelante os explicaré como eliminar el registro desde la Web.

Bueno pues ya sabemos una cosa más de PHP y MySql.

Agradecida por todos los mails que recibo y sobre todo satisfecha porque muchas dudas que tenéis las resolvéis  por medio del blog. El blog es como una comunidad dedicada al lenguaje PHP donde podéis participar todos, a la misma vez yo también voy haciendo memoria de cosas que tenía olvidadas de PHP y aprendiendo, por lo que si veis que hay un error o que hay aplicaciones que se pueden hacer de otra forma me lo hagáis saber así lo expongo en el blog y lo comparto con todos vosotros.

En la próxima entrada seguiremos con las bases de datos, nos introduciremos más en MySql y finalmente haremos una pequeña aplicación para tenerlo todo más claro. Así que en la próxima espero que sigáis así de fieles, un saludo!




















3 comentarios:

  1. Hola, segui este ejemplo y vota un error, y dice NO ESTA ESTA DEFINIDA LAS VARIABLES, claro pq tu en el archivo agregdat.php no se está recibiendo los valores q se esta insertando, el ejemplo lo has obviado.
    estoy siguiendo tus tutoriales.
    Saludos

    ResponderEliminar
  2. Gracias!! Pero... ¿solucionaste el error? Si que están definidas.. tienes que configurar el php.ini puesto que yo utilizo el proceso corto para la declaración de variables. Un saludo!

    ResponderEliminar
  3. Hola, lo q quise decirte era q en tu form(insertdat.php) no pusiste el method=POST, metodo que va enviar los datos y por ende tampoco pusiste el q los recibirá los datos, $_POST[' ']. quixas no lo pusiste al hacer este articulo. solo eso era lo q te queria aclarar

    ResponderEliminar