ࡱ > 5@ X bjbj22
B X X T H H H \ D \ \ G 2 p p p p p G G G G G G G $ H R K @G H @G p p g UG l R p H p G G : F > & " H C p d [(c G
B T E kG 0 G ^B P L L C \ \ C L H C < @G @G \ \ @ \ \ @
Curso de Extensin Universitaria
Desarrollo de sitios webcon PHP y MySQL
Prctica 12: Consulta avanzada de tablas
Apartado 1
Modificar la pgina de consulta de viviendas de la prctica 9 para que las viviendas aparezcan de 5 en 5 en la pantalla (figuras 1 y 2).
Figura 1: listado de viviendas paginado (pgina 1)
Figura 2: listado de viviendas paginado (pgina 2)
Para recuperar un nmero fijo de elementos de una tabla se utiliza la opcin LIMIT de la orden SELECT. As, por ejemplo,
SELECT * from viviendas LIMIT 0, 5
recupera los 5 primeros elementos de la tabla. Y en general,
SELECT * from viviendas LIMIT $comienzo, $num
recupera $num elementos a partir de la posicin $comienzo.
La variable $num tendr un valor constante (en este caso 5), mientras que la variable $comienzo se incrementar/decrementar en 5 unidades al pasar a la pgina siguiente/anterior. Para ello se pasar la variable como parmetro en el enlace asociado al botn correspondiente. Por ejemplo, el cdigo para el botn siguiente ser:
"Siguiente"
Habr que comprobar previamente que el nuevo valor de comienzo es vlido, es decir, que se encuentra dentro de los lmites de la tabla devuelta por la consulta.
Apartado 2
Modificar ahora la pgina de consulta para que aparezcan las viviendas de un tipo determinado. Para ello se aadir un elemento de tipo SELECT que permitir seleccionar el tipo de vivienda deseado (figura 3). Al pulsar el botn Actualizar se volver a cargar la pgina mostrando nicamente las viviendas del tipo seleccionado (Piso en la figura 4).
Figura 3: listado de viviendas con filtrado por tipo de vivienda
Figura 4: listado de las viviendas de tipo Piso
Para conseguir esto se utilizar la opcin WHERE de la orden SELECT. Por ejemplo,
SELECT * from viviendas WHERE tipo=Piso
recupera las viviendas cuyo tipo tiene el valor Piso. Y en general,
SELECT * from viviendas WHERE tipo=$tipo
recupera las viviendas cuyo tipo tiene el valor dado por la variable $tipo.
En este caso la variable $tipo corresponder al elemento SELECT, por lo que al pulsarse el botn Actualizar y enviarse el formulario se tendr en dicha variable el valor seleccionado.
Apartado 3
Modificar la pgina anterior para que se actualice automticamente al cambiar el tipo de vivienda seleccionado sin necesidad de pulsar un botn (figuras 5 y 6). Utilizar la siguiente funcin JavaScript:
Siendo selecciona el nombre del formulario y tipo el nombre del elemento SELECT.
El funcionamiento de este cdigo es el siguiente: la primera lnea,
i = document.forms.selecciona.tipo.selectedIndex;
obtiene el ndice (comenzando por 0) de la opcin seleccionada en el elemento SELECT. La segunda lnea,
tipo = document.forms.selecciona.tipo.options[i].value;
obtiene el valor de la opcin seleccionada. Finalmente, la tercera lnea
window.location = 'practica12c.php?tipo=' + tipo;
carga en la ventana del navegador la pgina actual pasando como parmetro el tipo seleccionado.
Para ejecutar la funcin JavaScript es preciso asociarla al elemento SELECT a travs del evento ONCHANGE, que se activa cuando se modifica la opcin seleccionada: