Búsqueda personalizada
 
 
 
 
INSERT (Alta de registros en una tabla)
   

Luego de crear una base de datos y sus tablas (como dijimos, en este servidor vamos a trabajar con una base de datos ya creada: phpfacil, que contiene la tabla alumnos), veremos como agregar registros.

Para añadir datos en la tabla empleamos el comando SQL llamado insert.

Necesitamos dos páginas para este proceso, una será el formulario de carga de datos y la siguiente será la que efectúe la inserción en la tabla.

Formulario de carga de datos:

<html>
<head>
<title>Problema</title>
</head>
<body>
<h1>Alta de Alumnos</h1>
<form action="pagina2.php" method="post">
Ingrese nombre:
<input type="text" name="nombre"><br>
Ingrese mail:
<input type="text" name="mail"><br>
Seleccione el curso:
<select name="codigocurso">
<option value="1">PHP</option>
<option value="2">ASP</option>
<option value="3">JSP</option>
</select>
<br>
<input type="submit" value="Registrar">
</form>
</body>
</html>

El formulario es bastante similar a los que venimos desarrollando en puntos anteriores, tal vez lo distinto es cómo emplearemos el control "select" del curso a desarrollar:

<select name="codigocurso">
<option value="1">PHP</option>
<option value="2">ASP</option>
<option value="3">JSP</option>
</select>

Cada opción tiene su respectivo valor (en este caso los números 1,2 y 3) y los textos a mostrar PHP, ASP y JSP. El dato que se envía a la otra página es el código de curso (esto debido a que definimos la propiedad value).

Ahora veremos como realizar la registración de los datos cargados en el formulario, en la tabla alumnos de la base de datos phpfacil:

<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") 
  or die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la seleccion de la base de datos");
mysql_query("insert into alumnos(nombre,mail,codigocurso) values 
   ('$_REQUEST[nombre]','$_REQUEST[mail]',$_REQUEST[codigocurso])", 
   $conexion) or die("Problemas en el select".mysql_error());
mysql_close($conexion);
echo "El alumno fue dado de alta.";
?>
</body>
</html>

Veamos los pasos para efectuar el alta en la tabla alumnos:

   $conexion=mysql_connect("localhost","root","z80") 
   or die("Problemas en la conexion");

La función mysql_connect se conecta a una base de datos de tipo MySql, el primer parámetro es la dirección donde se encuentra el gestor de base de datos (en este caso en el mismo servidor por lo que indicamos esto con "localhost), el segundo parámetro es el nombre de usuario de la base de datos ("root" en nuestro caso, que es el usuario por defecto que crea MySql para el administrador) y por último la clave del usuario (cuando yo instalé MySql definí como clave la cadena "z80").
En caso de hacer algún error en la llamada a la función la misma retorna false por lo que se ejecuta la instrucción seguida del operador or, en nuestro caso llamamos a la función die que detiene la ejecución del programa y muestra el mensaje por pantalla.

Paso seguido se selecciona una base de datos (ya que el gestor de base de datos puede administrar varias bases de datos):

  mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la seleccion de la base de datos");

A esta función le indicamos como primer parámetro el nombre de la base de datos con la que trabajaremos y como segundo parámetro la referencia que retornó la función mysql_connect.

El paso más importante es la codificación del comando SQL insert:

   mysql_query("insert into alumnos(nombre,mail,codigocurso) values 
   ('$_REQUEST[nombre]','$_REQUEST[mail]',$_REQUEST[codigocurso])", 
   $conexion) or die("Problemas en el select".mysql_error());

La sintaxis del comando insert es bastante sencilla, indicamos el nombre de la tabla y los campos de la tabla a cargar. Luego debemos indicar en el mismo orden los valores a cargar en cada campo (dichos valores los rescatamos del formulario anterior).

Los campos de tipo varchar SQL requiere que encerremos entre comillas simples, esto sucede para el nombre y el mail; en cambio, para el codigocurso esto no debe ser así.

Otra cosa a tener en cuenta es que los subíndices de los vectores asociativos no deben ir entre simples comillas ya que se encuentran dentro de un string, sino se producirá un error.

En caso que MySql detecte un error, retorna false esta función, por lo que se ejecuta la instrucción posterior al or, es decir la función die que mostrará el error generado por MySql llamando a la función mysql_error().
Por último cerramos la conexion con la base de datos y mostramos un mensaje indicando que la carga se efectuó en forma correcta.

Tener en cuenta que el campo código se generó en forma automática.

 
 
       
       

¿Quienes somos?

Condiciones de uso

Publicidad

Privacidad de la informacion