PHP: Tabla capaz de autoajustar su cantidad de filas.
Muchas veces nos encontramos ante la necesidad de volcar valores agrupados dentro de una misma tabla,
pero se nos presenta el inconveniente de que no conocemos la cantidad exacta de filas que son
necesarias para representar la totalidad de esos datos.
Para subsanar esta inquietud debemos recurrir a una tabla que autoajuste su
cantidad de filas, es decir que sea capaz de crear tantas filas como sean necesarias
para representar la totalidad de estos miembros.
A continuación abordaremos un ejemplo muy sencillo de como implementar una tabla
autoajustable, que nos permitirá mostrar en pantalla un listado de todos los empleados
que trabajan en una empresa.
Lo primero que necesitamos es tener los datos de los empleados que queremos representar guardados en algún lugar,
para hacer el ejemplo mas sencillo y fácil de probar, hemos optado por almacenarlos en un
Array
(también conocido como
Arreglo,
Matriz o
Vector), aunque cabe aclarar que normalmente cuando
desarrollemos una aplicación que requiera de una tabla autoajustable, es muy posible que estos
datos se encuentren almacenados en una
Base de Datos Relacional.
Almacenamos los datos en el arreglo:
Código para PHP:
$Empleados = array(
'22148366' => 'Juan Pablo GARCHIBANI' ,
'25716285' => 'Pedro GASTROPIEDRO' ,
'30456123' => 'Mario Santiago SALMEDRO' ,
'33458987' => 'Guillermo Alfredo TAVACCHI');
Ya tenemos los datos que queremos representar guardados en nuestro Array al que hemos
llamado $Empleados.
Ahora nos encontramos en condiciones de comenzar a trabajar con la tabla autoajustable,
para ello abrimos la etiqueta HTML de la tabla que llamaremos "TablaListaEmp":
Código para PHP:
echo "<table id='TablaListaEmp' rules='none' border='0'>" ;
En la primer fila de nuestra tabla colocamos el título del listado:
Código para PHP:
echo "
<tr>
<td colspan='5'>
<u>LISTADO DE EMPLEADOS DE LA EMPRESA GUIYOTE S.A.:</u>
<br><br>
</td>
</tr>" ;
De seguro ya has notado que nos encontramos trabajando con una tabla que posee cinco columnas,
es por ello que el título de nuestro listado se ha insertado en la primer fila de nuestra
tabla con sus cinco columnas combinadas (
colspan='5').
Ahora pasamos a la parte más interesante, vamos ha armar el código que le dirá
a nuestro servidor que envíe al navegador web del visitante tantas filas de esta tabla como
sean necesarias.
Como en este ejemplo nuestros datos se encuentran almacenados en una matriz, para lograr este efecto
podemos utilizar las instrucciones
for,
foreach o
while.
Pero como mencioné anteriormente, que generalmente cuando trabajemos con sistemas encargados
por nuestros clientes estos datos han de ser almacenados en alguna Base de Datos Relacional, he optado
por la instrucción
while que es la más probable que utilicemos para recorrer los resultados
de alguna consulta SQL que obtendremos en esos casos.
Veamos como lo llevamos a cabo:
Código para PHP:
while (list($clave, $valor) = each($Empleados)) {
echo "
<tr>
<td width='100'>Nomb. y Ape:</td>
<td width='240'><b>$valor</b></td>
<td width='10'> </td>
<td width='120'>Documento Nro.:</td>
<td width='80'><b>$clave</b></td>
</tr>
" ;
}
Gracias a la instrucción
while nuestra fila se repite tantas veces sea necesario
para representar todos los datos agrupados de nuestro vector.
De aquí en adelante puedes agregar todas las filas fijas que deseas visualizar al pie de
nuestra tabla, estas que agregues ya no serán repetibles.
A modo de ilustración agregaremos una fila más con un mensaje que no se repetirá:
Código para PHP:
echo "
<tr>
<td colspan='5'>
<br>
Sección Informática - GUIYOTE S.A. -
<br><br>
</td>
</tr>" ;
Sólo nos resta cerrar la etiqueta HTML de nuestra tabla:
Código para PHP:
echo "<table>" ;
Al ser ejecutado nuestro código en el servidor, el navegador visitante mostrará la
siguiente pantalla:
LISTADO DE EMPLEADOS DE LA EMPRESA GUIYOTE S.A.:
|
| Nomb. y Ape: |
Juan Pablo GARCHIBANI |
|
Documento Nro.: |
22148366 |
| Nomb. y Ape: |
Pedro GASTROPIEDRO |
|
Documento Nro.: |
25716285 |
| Nomb. y Ape: |
Mario Santiago SALMEDRO |
|
Documento Nro.: |
30456123 |
| Nomb. y Ape: |
Guillermo Alfredo TAVACCHI |
|
Documento Nro.: |
33458987 |
Sección Informática - GUIYOTE S.A. -
|
Como es de costumbre a continuación les dejo el código completo del ejemplo presentado:
<?php
$Empleados = array(
'22148366' => 'Juan Pablo GARCHIBANI' ,
'25716285' => 'Pedro GASTROPIEDRO' ,
'30456123' => 'Mario Santiago SALMEDRO' ,
'33458987' => 'Guillermo Alfredo TAVACCHI');
echo "<table id='TablaListaEmp' rules='none' border='0'>" ;
echo "
<tr>
<td colspan='5'>
<u>LISTADO DE EMPLEADOS DE LA EMPRESA GUIYOTE S.A.:</u>
<br><br>
</td>
</tr>" ;
while (list($clave, $valor) = each($Empleados)) {
echo "
<tr>
<td width='100'>Nomb. y Ape:</td>
<td width='240'><b>$valor</b></td>
<td width='10'> </td>
<td width='120'>Documento Nro.:</td>
<td width='80'><b>$clave</b></td>
</tr>
" ;
}
echo "
<tr>
<td colspan='5'>
<br>
Sección Informática - GUIYOTE S.A. -
<br><br>
</td>
</tr>" ;
echo "<table>" ;
?>
Autor: Guiyote, publicado el día 18/10/2011.