El manejo de una tabla sencilla.
Anterior | Capítulo 2. Principios de la Web | Siguiente

## El manejo de una tabla sencilla.

Vamos a empezar con una tabla sencilla para facilitar su comprensión, la de asignaturas. Empezaremos por crear el fichero index.php. Que sería así:

              <?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 asignaturas";
              //echo $sql;
              //re realiza la consulta
              $result=mysql_query($sql,$conexion);

              ?>
              <html>
                <head>
                  <TITLE>Listado de Asignaturas</TITLE>
                  <LINK REL="stylesheet" TYPE="text/css"
                  HREF="../estilo.css" />
                </head>
                <body>
                  <A href="../index.php" name="alumnos">Inicio</A>
                  <br />
                  <A href="../alumnos/index.php" name="alumnos">
                  Alumnos</A>
                  <br />
                  <A href="index.php" name="asignaturas">
                  Asignaturas</A>
                  <BR />
                  <A href="../tipos_de_alumno/index.php"
                  name="tipos_de_alumno">Tipo de alumno</A>
                  <br />
                  <p>Listado de Asignaturas.</p><?php
                  //aqui se coloca el enlace que permite añadir una asignatura
                  echo "<p><A HREF='nuevo.php'>Nuevo</A></p>";
                  //comienza el formulario que permite la busqueda
                  echo "<form method=\"post\" action=\"buscar.php\">";
                  //aqui coloca una caja de texto donde se escribe la busqueda
                  echo "<input type=\"text\" name=\"busqueda\" size=20 maxlength =20>";
                  //aqui se coloca el boton a pulsar cuando se rellene la busqueda
                  echo "<input type=\"submit\" name=\"buscar\" value=\"Buscar\"></form><br>";
                  //se cogen los primeros resultados del listado
                  if($row= mysql_fetch_array($result)){
                  //si hay algun registro inicia la tabla que muestra los resultados del listado
                  echo "<TABLE BORDER='1'>";
                  //coloca la cabecera de la tabla, aqui se substituiria con los campos de la tabla
                  //colocando mas <TD  CLASS=\"titulo\">campo</TD> dependiendo de los campos que haya
                  echo "<TR><TD CLASS=\"titulo\">Nombre</TD><TD colspan=3  CLASS=\"titulo\">Opciones</TD></TR>";
                  //empieza el bucle que coloca las líneas del listado
                  DO
                  {
                  //Coloca una línea en el listado
                  //si hay mas campos se ponen más <TD width=300 CLASS=\"linea\">".$row["nombre_campo"]."</TD>
                  //inicia la Äºinea
                  echo "<TR>";
                  //pone el nombre del alumno
                  echo "<TD width=300 CLASS=\"linea\">".$row["nombre"]."</TD>";
                  //pone los enlaces de ver, editar y borrar asignaturas
                  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>";
                  //termina la fila
                  echo "</TR>";
                  }
                  //comprueba si hay mas registros que colocar
                  WHILE ($row=mysql_fetch_array($result));
                  //si no hay mas registros termina la tabla
                  echo "</TABLE><br>";
                  //coloca el enlace que permite volver a listar
                  echo "<A HREF=\"index.php\">Volver</A>";
                  }else{
                  //si no hay registros en la tabla informa de ello
                  echo "No hay ninguna asignatura en la BBDD<BR>";
                  //coloca el enlace que permite volver a listar
                  echo "<A HREF=\"index.php\">Volver</A>";

                  }
                  //termina el script
                  ?>
                </body>
              </html>

Como puede verse en el fichero hay 4 partes bien diferenciadas, que se repetirán en todos los ficheros de index.php (de listado): una definidas como parte de un script PHP que consulta los datos a la tabla, otra donde hay código HTML de la cabecera del fichero HTML resultante, otra parte en PHP que permite generar la tabla con los datos y la última donde se cierran los tags HTML de la página web.

En la primera parte se incluye el fichero ../config.php que es donde centralizamos los datos de configuración para poder acceder a la base de datos. Después de realizar la conexión y seleccionar la BBDD se almacena en la variable $sql la consulta a realizar. Para a continuación ejecutar la consulta en la base de datos y almacenar en la variable $result los resultados de la consulta.

En la segunda parte se definen los tags HTML generales y el del menú de la Aplicación. El enlace a la página principal y al resto de directorios generados.

En la tercera parte, se pude ver cómo generar el código HTML mediante los echos. en al primera sección se pude ver cómo se genera el cuadro de búsqueda, en la segunda parte se puede ver cómo utilizar la sentencia condicional con sus dos casos: el primero en el que hay datos en el resultado y el segundo cuando no hay resultados a la consulta. En el primer caso se genera la cabecera de una tabla y luego se entra en un bucle para cada uno de los resultados(filas), se ponen celdas cada fila con cada uno de los valores (en este caso un sólo campo registrable el nombre) y luego colcoa las operaciones típicas Ver, Editar y Borrar; cierra la fila y luego cierra la tabla. En el segundo caso simplemente saca un mensaje de que no hay asignaturas disponibles.

Merece una especial mención la manera de resulver las llamadas a cada una de las operaciones. Por el funcionamiento de una aplicación Web debe recordarse que una vez calculada la página se termina su ejecución e inicialmente no hay datos disponibles; por lo tanto en cada recarga de página el script debe ser ejecutado completamente hasta su finalización. Para facilitarle al lector su aprendizaje se van a generar ficheros .php para cada operación. La manera de abstraer los pasos de valores entre recargas de página es con los métodos GET y POST, en el caso de las operaciones del listado se pasan los datos mediante el método GET, es decir mediante la llamada al script, por ejemplo ver.php, seguido del símbolo ? seguido de una terna: nombre de parámetro, símbolo = y el valor; por ejemplo ?id=1 sería pasar el parámetro id con el valor 1. Después estos parámetros se podrán recuperar de una manera sencilla.

En la cuarta parte, simplemente se cierran los tag que se había abierto prteviamente para dar un código HTML Válido.

Acon tinuación veremos los distintos tipos de enlaces que disponemos en la página de listado index.php del directorio.

Anterior | Subir | Siguiente
La página principal | Inicio | Añadir un nuevo registro.