Capítulo 4. Inclusión de relaciones
Anterior |  | Siguiente

## Capítulo 4. Inclusión de relaciones

## Directorio de Alumnos

index.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");

              ?>
              <html>
                <head>
                  <TITLE>Búsqueda de Asignaturas</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <p>Búsqueda de Asignaturas.</p><?php
                  // coloca el enlace que permite añadir un alumno
                  echo "<p><A HREF='nuevo.php'>Nuevo</A></p>";
                  // se inicia el formulario de la búsqueda
                  echo "<form method=\"post\" action=\"buscar.php\">";
                  // se indica que el campo de busqueda tiene 20 caracteres de longitud
                  echo "<input type=\"text\" name=\"busqueda\" size=20 maxlength =100 value=\"".$_POST['busqueda']."\">";
                  // se coloca el boton que se paretara para realizar la busqueda
                  echo "<input type=\"submit\" name=\"buscar\" value=\"Buscar\"></form><br>";
                  // se rellena la busqueda por todos los campos de la tabla, se debe substituir alumnos por el nombre de la tabla y
                  // poner tantos nombre_de_campo LIKE '%".$_POST['busqueda']."%' OR como campos haya.
                  $sql="SELECT * FROM asignaturas where nombre LIKE '%".$_POST['busqueda']."%';";
                  // se realiza la busqueda
                  $result=mysql_query($sql,$conexion);
                  //Se comprueba si hay resultados en la busqueda
                  if($row= mysql_fetch_array($result)){
                  // si hay resultados crea la tabla
                  echo "<TABLE BORDER='1'>";
                  //pone los campos de la tabla tiene que haber tantos <TD CLASS=\"titulo\">Nombre_de_campo</TD> como campos haya
                  echo "<TR><TD CLASS=\"titulo\">Nombre</TD><TD colspan=3  CLASS=\"titulo\">Opciones</TD></TR>";
                  //coloca las líneas de la tabla
                  DO
                  {
                  //aqui se ponen tantas líneas <TD width=300 CLASS=\"linea\">".$row["nombre_de_campo"]."</TD> como campos haya en la tabla
                  // se coloca el inicio de la fila
                  echo "<TR>";
                  //se coloca el campos del nombre
                  echo "<TD width=300 CLASS=\"linea\">".$row["nombre"]."</TD>";
                  //se colocan los enlaces de ver editar y borrar alumno
                  echo "<TD CLASS=\"linea\"><A HREF=ver.php?id=".$row['id'].">Ver</A></TD>";
                  echo "<TD width=50 CLASS=\"linea\"><A HREF=editar.php?id=".$row['id'].">Editar</A></TD>";
                  echo "<TD width=50 CLASS=\"linea\"><A HREF=borrar.php?id=".$row['id'].">Borrar</A></TD>";
                  //se termina la fila
                  echo "</TR>";
                  }
                  //Comprueba si se ha terminado de poner líneas
                  WHILE ($row=mysql_fetch_array($result));
                  //como se ha terminado de poner líneas se acaba la tabla
                  echo "</TABLE><br>";
                  //coloca el enlace para volver al listado
                  echo "<A HREF=\"index.php\">Volver</A>";
                  }else{
                  //si no hay registros que coincidan con la busqueda se le indica al usuario
                  echo "La búsqueda no coincide con ningún registro de la BBDD<BR>";
                  //se coloca el enlace del volver al listado
                  echo "<A HREF=\"index.php\">Volver</A>";

                  }
                  ?>
                </body>
              </html>

Nótese como en la tercera parte del fichero hay una nueva consulta en busca de los nombres de los tipos de alumno para poder encontrar el nombre de la que está relacionada con cada alumno. Por lo demás es como cualquier otro index.php de directorio.

ver.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from alumnos WHERE id=".$_GET['id'].";";
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //print $sql;
              //se coge el registro del alumno
              $row= mysql_fetch_array($result);
              ?>
              <html>
                <head>
                  <TITLE>Alumno:<?php echo $row['nombre']; ?></TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  //en esta parte se muestran los campos del alumno
                  //se debe añadir líneas tantas como campos tenga la tabla: echo "<p>Nombre de campo:".$row["nombre_de_campo"]."</p>";
                  //se muestra el código del alumno
                  echo "<p>Código:".$row["id"]."</p>";
                  //se muestra el nombre del alumno
                  echo "<p>Nombre:".$row["nombre"]."</p>";
                  //se muestra el dni del alumno
                  echo "<p>DNI:".$row["dni"]."</p>";
                  $sql2="Select * from tipos_de_alumno where id_tipo_de_alumno=".$row['id_tipo_de_alumno'].";";
                  //echo $sql2;
                  //re realiza la consulta para meter en $result2 los tipos de alumnos
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 el primer tipo de alumno
                  $row2= mysql_fetch_array($result2);
                  echo "<p>Tipo de Alumno:".$row2["nombre"]."</p>";
                  //se coloca el enlace para que pueda editarse el alumno.
                  echo "<p><A HREF=editar.php?id=".$row['id'].">Editar</A></TD></p>";
                  // se coloca el enlace para borrar el alumno
                  echo "<p><A HREF=borrar.php?id=".$row['id'].">Borrar</A></TD></p>";
                  // se coloca el enlace para ver la matriculas de alumno
                  echo "<p><A HREF=ver_matriculas.php?id=".$row['id'].">Ver Matriculas</A></TD></p>";
                  // se coloca el enlace para ir a listado de alumnos
                  echo "<p><A HREF='index.php'>Atras</A></p>";
                  ?>
                </body>
              </html>

Aquí al final de la tercera parte se ve como se muestra un enlace a un nuevo fichero que permite la visualización de las matrículas de dicho alumno.

editar.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexi?n
              include_once('../config.php');
              //cogemos las variables de las coneci?n para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexi?n
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from alumnos WHERE id=".$_GET['id'].";";
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //print $sql;
              //se coge el registro del alumno
              $row= mysql_fetch_array($result);
              ?>
              <html>
                <head>
                  <TITLE>Nuevo Alumno</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  //se mira si se est? enviando el formulario de edici?n del alumno
                  if(!isset( $_POST['editar']))
                  {
                  //Si se est? enviando el formulario
                  //echo "<p>Vuelva a intentarlo</p>";
                  //se abre el formulario que envia los datos de las modificaciones de ese registro
                                  echo "<form method=\"post\" action=\"editar.php?id=".$_GET['id']."\" >";
                  // muestra el c?digo del alumno
                                  echo "Codigo:".$row['id']."<br>";
                  // a partir de aqui se muestran los campos a rellenar en el formulario
                  // si se substituye echo "Nombre : <input type=\"text\" name=\"nombre\" value=\"".$row['nombre']."\" maxlength =200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_de_campo\" value=\"".$row['nombre']."\" maxlength =longitud_maxima_de_campo
                  //  size=tama?o_dte_la_caja><br>";
                  // se muestra la caja del nombre del alumno
                                  echo "Nombre : <input type=\"text\" name=\"nombre\" value=\"".$row['nombre']."\" maxlength =200 size=40><br>";
                  // se muestra la caja del dni
                                  echo "DNI : <input type=\"text\" name=\"dni\" value=\"".$row['dni']."\" maxlength =10 size=10><br>";
                  //inicia la combo de los tipos
                  echo "Tipo de Alumno:";
                  echo "<select name=\"tipo_de_alumno\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from tipos_de_alumno;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option value=\"".$row2['id_tipo_de_alumno']."\"";
                  if($row2['id_tipo_de_alumno']==$row['id_tipo_de_alumno'])
                          echo "selected";
                  echo ">".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más tipos de alumno
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas tipos de alumno cierra el listado
                  echo "</select> <br><br>";
                  // se pone el bot?n de guardar los datos
                                  echo "<input type=\"submit\" name=\"editar\" value=\"Guardar\"></form><br>";
                  }else{
                  // si se env?a el formulario hay que coger los datos del formulario y meterlos en la BBDD
                  // aqui se deben a?adir tantos isset($_POST['nombre_de_campo']) && como campos haya en la bbdd
                          if(isset($_POST['nombre']) && isset($_POST['dni']) && isset($_POST['tipo_de_alumno'])){
                  //se desactiva el contenido de la variable $sql
                                  unset($sql);
                  // se rellena la consulta que inserta los datos
                  //se ponen tantos `nombre_de_campo` = '".$_POST['nombre_de_campo']."',

                                  $sql="UPDATE `alumnos` SET `nombre` = '".$_POST['nombre']."',`dni` = '".$_POST['dni']."',`id_tipo_de_alumno` = '".
                                  $_POST['tipo_de_alumno']."' WHERE `id` =".$_GET['id']." LIMIT 1 ;";
                                  //echo $sql;
                                  //print_r ($_POST);
                  //se envia la inserci?n de datos en la BBDD
                                  $result=mysql_query($sql,$conexion);
                  //Se informa por la p?gina web que el alumno ha sido modificado
                                  echo "<p>Alumno Modificado</p>";
                  //se coloca el bot?n que hace volver al listado de alumnos
                                  echo "<p><A HREF='index.php'>Volver</A></p>";
                          }else{
                          // se informa al usuario que no se han rellenado los campos
                  print_r($_POST);
                          echo "Vuelva a intentarlo.<br>";
                          //se abre el formulario que envia los datos de las modificaciones de ese registro
                                  echo "<form method=\"post\" action=\"editar.php?id=".$_GET['id']."\" >";
                  // muestra el c?digo del alumno
                                  echo "Codigo:".$row['id']."<br>";
                  // a partir de aqui se muestran los campos a rellenar en el formulario
                  // si se substituye echo "Nombre : <input type=\"text\" name=\"nombre\" value=\"".$row['nombre']."\" maxlength =200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_de_campo\" value=\"".$row['nombre']."\" maxlength =longitud_maxima_de_campo
                  // size=tama?o_dte_la_caja><br>";
                  // se muestra la caja del nombre del alumno
                                  echo "Nombre : <input type=\"text\" name=\"nombre\" value=\"".$row['nombre']."\" maxlength =200 size=40><br>";
                  // se muestra la caja del dni
                                  echo "DNI : <input type=\"text\" name=\"dni\" value=\"".$row['dni']."\" maxlength =10 size=10><br>";
                  // se pone el bot?n de guardar los datos
                                  echo "<input type=\"submit\" name=\"editar\" value=\"Guardar\"></form><br>";
                          }
                  }
                  ?>
                </body>
              </html>

Cabe destacar la segúnda búsqueda en la tabla de tipos de alumno para ocnstuir el tag select (combobox)

borrar.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from alumnos WHERE id=".$_GET['id'].";";
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //print $sql;
              //se coge el registro del alumno
              $row= mysql_fetch_array($result);
              ?>
              <html>
                <head>
                  <TITLE>Borrar Alumno</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  // se rellena la consulta que borra el alumno se substituye alumno por el nombre de la tabla
                  $sql="DELETE from `alumnos` WHERE `id` =".$_GET['id']." LIMIT 1 ;";
                  //echo $sql;
                  // se ejecuta la consulta se borrado
                  $result=mysql_query($sql,$conexion);
                  // se informa de que se ha eliminado un alumno
                  echo "<p>Alumno eliminado</p>";
                  // se coloca el enlace que permite volver al listado
                  echo "<p><A HREF='index.php'>Volver</A></p>";

                  ?>
                </body>
              </html>

buscar.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");

              ?>
              <html>
                <head>
                  <TITLE>Búsqueda de Alumnos</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <p>Búsqueda de Alumnos.</p><?php
                  // coloca el enlace que permite añadir un alumno
                  echo "<p><A HREF='nuevo.php'>Nuevo</A></p>";
                  // se inicia el formulario de la búsqueda
                  echo "<form method=\"post\" action=\"buscar.php\">";
                  // se indica que el campo de busqueda tiene 20 caracteres de longitud
                  echo "<input type=\"text\" name=\"busqueda\" size=20 maxlength =20 value=\"".$_POST['busqueda']."\">";
                  // se coloca el boton que se paretara para realizar la busqueda
                  echo "<input type=\"submit\" name=\"buscar\" value=\"Buscar\"></form><br>";
                  // se rellena la busqueda por todos los campos de la tabla, se debe substituir alumnos por el nombre de la tabla y poner tantos nombre_de_campo LIKE '%".$_POST['busqueda']."%' OR como campos haya.
                  $sql="SELECT * FROM alumnos where nombre LIKE '%".$_POST['busqueda']."%' OR dni LIKE '%".$_POST['busqueda']."%';";
                  // se realiza la busqueda
                  $result=mysql_query($sql,$conexion);
                  //Se comprueba si hay resultados en la busqueda
                  if($row= mysql_fetch_array($result)){
                  // si hay resultados crea la tabla
                  echo "<TABLE BORDER='1'>";
                  //pone los campos de la tabla tiene que haber tantos <TD CLASS=\"titulo\">Nombre_de_campo</TD> como campos haya
                  echo "<TR><TD CLASS=\"titulo\">Nombre</TD><TD CLASS=\"titulo\">DNI</TD><TD colspan=3  CLASS=\"titulo\">Opciones</TD></TR>";
                  //coloca las líneas de la tabla
                  DO
                  {
                  //aqui se ponen tantas líneas <TD width=300 CLASS=\"linea\">".$row["nombre_de_campo"]."</TD> como campos haya en la tabla
                  // se coloca el inicio de la fila
                  echo "<TR>";
                  //se coloca el campos del nombre
                  echo "<TD width=300 CLASS=\"linea\">".$row["nombre"]."</TD>";
                  //se coloca el campo del dni
                  echo "<TD width=160 CLASS=\"linea\">".$row["dni"]."</TD>";
                  //se colocan los enlaces de ver editar y borrar alumno
                  echo "<TD CLASS=\"linea\"><A HREF=ver.php?id=".$row['id'].">Ver</A></TD>";
                  echo "<TD width=50 CLASS=\"linea\"><A HREF=editar.php?id=".$row['id'].">Editar</A></TD>";
                  echo "<TD width=50 CLASS=\"linea\"><A HREF=borrar.php?id=".$row['id'].">Borrar</A></TD>";
                  //se termina la fila
                  echo "</TR>";
                  }
                  //Comprueba si se ha terminado de poner líneas
                  WHILE ($row=mysql_fetch_array($result));
                  //como se ha terminado de poner líneas se acaba la tabla
                  echo "</TABLE><br>";
                  //coloca el enlace para volver al listado
                  echo "<A HREF=\"index.php\">Volver</A>";
                  }else{
                  //si no hay registros que coincidan con la busqueda se le indica al usuario
                  echo "La búsqueda no coincide con ningún registro de la BBDD<BR>";
                  //se coloca el enlace del volver al listado
                  echo "<A HREF=\"index.php\">Volver</A>";

                  }
                  ?>
                </body>
              </html>

nuevo.php de alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");

              ?>
              <html>
                <head>
                  <TITLE>Nuevo Alumno</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  //comprueba si se entas enviando datos para guardar
                  //si no es asi es que tiene que presentar el formulario
                  if(!isset( $_POST['nuevo']))
                  {
                  //coloca el principio del formulario para que vuelva al mismo script cuando se rellene
                          echo "<form method=\"post\" action=\"nuevo.php\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  // se muestra la caja del nombre del alumno
                                  echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength =100 size=40><br>";
                  // se muestra la caja del dni del alumno
                                  echo "DNI : <input type=\"text\" name=\"dni\" maxlength =15 size=9><br>";
                  //inicia la combo de los tipos
                  echo "Tipo de Alumno:";
                  echo "<select name=\"tipo_de_alumno\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from tipos_de_alumno;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option value=\"".$row2['id_tipo_de_alumno']."\">".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más tipos de alumno
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas tipos de alumno cierra el listado
                  echo "</select> <br><br>";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                  }else{
                  //si se han metido los datos en el formulario
                  //se deben colocar tantos isset($_POST['nombre_campo']) && como campos haya en la tabla
                          if(isset($_POST['nombre']) && isset($_POST['dni']) &&  isset($_POST['tipo_de_alumno'])){
                  //en esta linea se ponen los nombres de los campos separados por comas y en la parte de values lo mismo pero con variables $_POST['nombre_campo']
                  //se reinician las variables de la busqueda
                  unset($result2);
                  unset($row2);

                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from tipos_de_alumno;";
                  //echo $sql2;
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //echo $result2;
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  //busca que id tiene la asignatura
                  DO
                  {
                  //si el nombre coincide con el elegido en el formulario coge el nombre y el id de la asignatura
                  if($row2['id_tipo_de_alumno']==$_POST['tipo_de_alumno']){
                          //echo "hemos entrao!!";
                          $nombre_asig=$row2['nombre'];
                          //echo $nombre_asig;
                          $id_tipo_de_alumno=$row2['id_tipo_de_alumno'];
                          //echo $id_asig;
                          break;
                  }
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));
                  $sql="INSERT INTO `alumnos` ( `id` , `nombre` , `dni`, `id_tipo_de_alumno` )
                                  VALUES (NULL , '".$_POST['nombre']."' , '".$_POST['dni']."', '".$id_tipo_de_alumno."');";
                                  //echo $sql;
                  //se ejecuta la inserción de datos
                                  $result=mysql_query($sql,$conexion);
                  //se informa de que se añadido un nuevo alumno
                                  echo "<p>Alumno Añadido</p>";
                  //se coloca el enlace que permite volver al listado
                                  echo "<p><A HREF='index.php'>Volver</A></p>";
                          }else{
                  // si no nos han metido campos
                                  echo "<p>Vuelva a intentarlo</p>";
                  // se vuelve a colocar el formulario con los mismos campos que ahora, la diferenia es que se pone tantas veces como campos haya en los VALUE el $_POST['nombre_de_campo'] para que no haya que volver a teclearlo

                          echo "<form method=\"post\" action=\"nuevo.php?id=".$_GET['id']."\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  // se muestra la caja del nombre del alumno
                                  echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength =100 size=40><br>";
                  // se muestra la caja del dni del alumno
                                  echo "DNI : <input type=\"text\" name=\"nombre\" maxlength =15 size=9><br>";
                  //inicia la combo de los tipos
                  echo "<select name=\"tipo_de_alumno\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from tipos_de_alumno;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option value=\"".$row2['id_tipo_de_alumno']."\">".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más tipos de alumno
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas tipos de alumno cierra el listado
                  echo "</select> <br><br>";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                          }
                  }
                  ?>
                </body>
              </html>

Cabe destacar la segúnda búsqueda en la tabla de tipos de alumno para ocnstuir el tag select (combobox)

matricular.php alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from alumnos WHERE id=".$_GET['id'].";";
              //print $sql;
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //mete el alumno en la variable $row
              $row= mysql_fetch_array($result);

              //print $sql2;
              ?>
              <html>
                <head>
                  <TITLE>Matricular
                  Alumno:<?php echo $row['nombre']; ?></TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  //comprueba si se entas enviando datos para guardar
                  //si no es asi es que tiene que presentar el formulario
                  if(!isset( $_POST['nuevo']))
                  {
                  //coloca el principio del formulario para que vuelva al mismo script cuando se rellene
                          echo "<form method=\"post\" action=\"matricular.php?id=".$_GET['id']."\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  //se muestra el código del alumno
                  echo "<p>Código:".$row["id"]."</p>";
                  //se muestra el nombre del alumno
                  echo "<p>Nombre:".$row["nombre"]."</p>";

                  //se coloca la caja oculta con el id del alumno
                          echo "<input type=\"hidden\" name=\"id_alum\" value=\"".$row['id']."\">";
                  //inicia la combo de las asignaturas
                  echo "<select name=\"asignatura\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option value=\"".$row2['id']."\">".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas asignatutas cierra el listado de asignaturas
                  echo "</select> <br><br>";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                  }else{
                  //si se han metido los datos en el formulario
                  //se deben colocar tantos isset($_POST['nombre_campo']) && como campos haya en la tabla
                          if(isset($_POST['id_alum']) && isset($_POST['asignatura'])){

                  //se reinician las variables de la busqueda
                  unset($result2);
                  unset($row2);

                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //echo $sql2;
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //echo $result2;
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  //busca que id tiene la asignatura
                  DO
                  {
                  //si el nombre coincide con el elegido en el formulario coge el nombre y el id de la asignatura
                  if($row2['id']==$_POST['asignatura']){
                          //echo "hemos entrao!!";
                          $nombre_asig=$row2['nombre'];
                          //echo $nombre_asig;
                          $id_asig=$row2['id'];
                          //echo $id_asig;
                          break;
                  }
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));

                                  $sql="INSERT INTO `matriculas` ( `id_mat` , `id_alum` , `id_asig` )
                                  VALUES (NULL , ".$_POST['id_alum']." , ".$_POST['asignatura'].")";
                                  //echo $sql;
                  //se ejecuta la inserción de datos
                                  $result=mysql_query($sql,$conexion);
                  //se informa de que se añadido un nuevo alumno
                                  echo "<p>Matrícula añadida del alumno ".$row['nombre']." en la asignatura ".$nombre_asig."</p>";
                  //se coloca el enlace que permite volver al listado
                                  echo "<p><A HREF='ver_matriculas.php?id=".$_GET['id']."'>Volver</A></p>";
                          }else{
                  // si no nos han metido campos
                                  echo "<p>Vuelva a intentarlo</p>";
                  // se vuelve a colocar el formulario con los mismos campos que ahora, la diferenia es que se pone tantas veces como campos haya en los VALUE el $_POST['nombre_de_campo'] para que no haya que volver a teclearlo
                          echo "<form method=\"post\" action=\"matricular.php\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  //se muestra el código del alumno
                  echo "<p>Código:".$row["id"]."</p>";
                  //se muestra el nombre del alumno
                  echo "<p>Nombre:".$row["nombre"]."</p>";

                  //se coloca la caja oculta con el id del alumno
                          echo "id : <input type=\"hidden\" name=\"id_alum\" value=\"".$row['id']."\"><br>";
                  //inicia la combo de las signaturas
                  echo "<select name=\"asignatura\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option>".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas asignatutas cierra el listado de asignaturas
                  echo "</select> ";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                          }
                  }
                  ?>
                </body>
              </html>

Este es un caso un poco peculiar, ya que dado un alumno se le intenta matricular en alguna de las asignaturas disponibles. Por lo tanto debe buscar todas las asignaturas y colocarlas en el select. Y luego hacer la insercción en la tabla de relaciones (matriculas).

ver_matriculas.php alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from alumnos WHERE id=".$_GET['id'].";";
              //print $sql;
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //mete el alumno en la variable $row
              $row= mysql_fetch_array($result);

              //print $sql2;
              ?>
              <html>
                <head>
                  <TITLE>Matricular
                  Alumno:<?php echo $row['nombre']; ?></TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  //comprueba si se entas enviando datos para guardar
                  //si no es asi es que tiene que presentar el formulario
                  if(!isset( $_POST['nuevo']))
                  {
                  //coloca el principio del formulario para que vuelva al mismo script cuando se rellene
                          echo "<form method=\"post\" action=\"matricular.php?id=".$_GET['id']."\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  //se muestra el código del alumno
                  echo "<p>Código:".$row["id"]."</p>";
                  //se muestra el nombre del alumno
                  echo "<p>Nombre:".$row["nombre"]."</p>";

                  //se coloca la caja oculta con el id del alumno
                          echo "<input type=\"hidden\" name=\"id_alum\" value=\"".$row['id']."\">";
                  //inicia la combo de las asignaturas
                  echo "<select name=\"asignatura\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option value=\"".$row2['id']."\">".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas asignatutas cierra el listado de asignaturas
                  echo "</select> <br><br>";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                  }else{
                  //si se han metido los datos en el formulario
                  //se deben colocar tantos isset($_POST['nombre_campo']) && como campos haya en la tabla
                          if(isset($_POST['id_alum']) && isset($_POST['asignatura'])){

                  //se reinician las variables de la busqueda
                  unset($result2);
                  unset($row2);

                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //echo $sql2;
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //echo $result2;
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  //busca que id tiene la asignatura
                  DO
                  {
                  //si el nombre coincide con el elegido en el formulario coge el nombre y el id de la asignatura
                  if($row2['id']==$_POST['asignatura']){
                          //echo "hemos entrao!!";
                          $nombre_asig=$row2['nombre'];
                          //echo $nombre_asig;
                          $id_asig=$row2['id'];
                          //echo $id_asig;
                          break;
                  }
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));

                                  $sql="INSERT INTO `matriculas` ( `id_mat` , `id_alum` , `id_asig` )
                                  VALUES (NULL , ".$_POST['id_alum']." , ".$_POST['asignatura'].")";
                                  //echo $sql;
                  //se ejecuta la inserción de datos
                                  $result=mysql_query($sql,$conexion);
                  //se informa de que se añadido un nuevo alumno
                                  echo "<p>Matrícula añadida del alumno ".$row['nombre']." en la asignatura ".$nombre_asig."</p>";
                  //se coloca el enlace que permite volver al listado
                                  echo "<p><A HREF='ver_matriculas.php?id=".$_GET['id']."'>Volver</A></p>";
                          }else{
                  // si no nos han metido campos
                                  echo "<p>Vuelva a intentarlo</p>";
                  // se vuelve a colocar el formulario con los mismos campos que ahora, la diferenia es que se pone tantas veces como campos haya en los VALUE el $_POST['nombre_de_campo'] para que no haya que volver a teclearlo
                          echo "<form method=\"post\" action=\"matricular.php\">";
                  //aqui se deben poner tantas líneas echo como campos haya
                  //cambiando el echo "Nombre : <input type=\"text\" name=\"nombre\" maxlength=200 size=40><br>";
                  // por echo "Nombre : <input type=\"text\" name=\"nombre_campo\" maxlength=longitud_campo size=tamaño_caja_texto><br>";
                  //se muestra el código del alumno
                  echo "<p>Código:".$row["id"]."</p>";
                  //se muestra el nombre del alumno
                  echo "<p>Nombre:".$row["nombre"]."</p>";

                  //se coloca la caja oculta con el id del alumno
                          echo "id : <input type=\"hidden\" name=\"id_alum\" value=\"".$row['id']."\"><br>";
                  //inicia la combo de las signaturas
                  echo "<select name=\"asignatura\">";
                  //rellena la sql para buscar las asignaturas
                  $sql2="Select * from asignaturas;";
                  //re realiza la consulta para meter en $result2 las asignaturas
                  $result2=mysql_query($sql2,$conexion);
                  //coloca en $row2 la primera asignatura
                  $row2= mysql_fetch_array($result2);
                  DO
                  {
                  //coloca la asignatura en el listado
                  echo "<option>".$row2['nombre']."</option>";
                  }
                  //comprueba si hay más asignaturas
                  while ($row2= mysql_fetch_array($result2));
                  //si no hay mas asignatutas cierra el listado de asignaturas
                  echo "</select> ";
                  ////se coloca el botón de guardar
                          echo "<input type=\"submit\" name=\"nuevo\" value=\"Guardar\"></form><br>";
                          }
                  }
                  ?>
                </body>
              </html>

borrar_matricula.php alumnos

              <?php
              //incluimos el fichero config.php para coger los datos de la conexión
              include_once('../config.php');
              //cogemos las variables de las coneción para que se puedan utilizar en el script
              global $server, $database, $user, $passwd;
              //abrimos la conexión
              $conexion = mysql_connect($server,$user,$passwd);
              //elegimos la BBDD
              mysql_select_db ($database, $conexion) OR die ("No se puede conectar");
              //rellenamos la consulta, cambiar alumnos por el nombre de la tabla a listar
              $sql="Select * from matriculas WHERE id_mat=".$_GET['id'].";";
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);
              //print $sql;
              //se coge el registro del alumno
              $row= mysql_fetch_array($result);
              ?>
              <html>
                <head>
                  <TITLE>Borrar Alumno</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <?php
                  // se rellena la consulta que borra el alumno se substituye alumno por el nombre de la tabla
                  $sql="DELETE from `matriculas` WHERE `id_mat` =".$_GET['id']." LIMIT 1 ;";
                  //echo $sql;
                  // se ejecuta la consulta se borrado
                  $result=mysql_query($sql,$conexion);
                  // se informa de que se ha eliminado un alumno
                  echo "<p>Matrícula eliminada</p>";
                  // se coloca el enlace que permite volver al listado
                  echo "<p><A HREF='ver_matriculas.php?id=".$_GET['id_alum']."'>Volver</A></p>";

                  ?>
                </body>
              </html>

Anterior |  | Siguiente
Capítulo 3. Otros ejemplos | Inicio | Conclusiones