Creative Commons License
Construir un directorio de Webs con PHP y MySQL. por redribera.es is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 2.5 España License.

Construir un directorio de Webs con PHP y MySQL.
por redribera - redribera

2 Construyendo nuestro directorio web.

2.4 Visualizar las secciones del directorio.

Para empezar a trabajar con los conceptos que vamos a ver, sería interesante tener creadas las tablas en nuestra base de datos mysql y a ser posible, con una estructura de secciones para nuestro directorio.
La lista de secciones a utilizar es muy personal de cada uno, no obstante os dejo un enlace con las secciones que utilizamos para el directorio de redribera como instrucciones INSERT de SQL para que podaís inicializar la tabla de secciones que creamos anteriormente con unos cuantos datos validos.

Listado de secciones en SQL.

Con los datos cargados, ya podemos empezar a crear nuestras primeras páginas para este directorio.

Aquí está el código html y php necesario para nuestras primeras pruebas, asumimos, que ya está creada una base de datos mysql, con las tres tablas que vimos anteriormente y con los datos de secciones insertados.

Código html y php para el ejemplo.

Podeís probar el resultado que se obtendría con este script en este enlace

Comentemos el código mostrado:
Se trata de una página web que mezcla php y html. Las lineas 5,17 y 24 declaran estilos css para tres capas, una contenedora y dos capas flotantes contenidas en la capa contenedora, una flotante izquierda y la otra derecha.
Esto es porque en pensamos poner las categorías de nuestro directorio en la izquierda y los enlaces que contengan las categorías se muestren en la capa derecha (ahora no hay enlaces, ni hemos habilitado como mostrarlos).
Por supuesto esta no es una presentación muy estética, pero a nosotros nos valdrá para realizar este tutorial. Se deja en manos del lector mejorar la presentación acorde a sus gustos, no entraremos en mas detalle.
La linea 43, incluye en nuestro script las variables de conexión a nuestra base de datos MySQL, esto se debe modificar por el lector para que coincida con su conexión a mysql. En cualquier caso esta linea se puede sustituir por la declaración de variables: $hostname, $username, $password y $databasename.
Pasemos a comentar la funcion display_tree. Si leisteis el tutorial almacenar datos jerarquicos en una base de datos , que vimos en el anterior apartado, os dareís cuenta que es una versión casi identica a la que en este tutorial se comenta. Basicamente se trata de una función que consulta todos los nodos de un subarbol dado (en el parametro $root). En este caso el subárbol es todo el árbol, dado que pasamos como parametro el id=13, que se corresponde con el nodo raiz. Esto es así porque seleccionamos el rango de registros con numeración contenida entre los valores izquierdo y derecho del nodo raiz, que por la propia condición de este tipo de árboles se trata del subárbol específico.
Finalmente recorremos el subárbol en orden del numeral izquierdo ASCENDENTE, de tal modo que obtenemos los registros organizados por subsecciones. Mientras recorremos el árbol construimos una estructura de pila que nos determina el orden jerarquico. Es decir que chequeamos el valor derecho del nodo procesado con respecto al último nodo insertado en la pila y así sabemos si debemos eliminar o no un nodo de la pila.
De este modo sabemos el nivel de la jerarquia al que pertenece el nodo procesado, y así sabemos si debemos tabularlo en la presentación o no.
Esta forma de recorrer el árbol, es buena porque nos evita utilizar la recursión de los nodos procesados, es decir, evita que por cada nodo que procesemos, tengamos que consultar (con otra SQL) que nodos apuntan a aquel como padre.
Si pensamos en el coste computacional de esta operación para presentar todas las secciones, vemos que con una (como mucho dos), SQL contra la tabla podemos presentar el árbol, mientras que utilzando una recursión, el número de consultas sería exponencial en el peor de los casos. Esto descongestionará el procesador del servidor a la hora de realizar muchas consultas a la página.
Al tiempo que recorremos los nodos presentamos el resultado en pantalla con la instruccion echo de php.
No es necesario que huyamos de la recursión, ya que en determinadas ocasiones puede ser buena para presentar por ejemplo las secciones asociadas a un nodo determinado, es por ello que la estructura de nuestra tabla, que contiene un campo apuntando al nodo del padre, ademas de los valores izquierdo y derecho, nos permite utilizar ambas políticas.
Jugar con la estructura del árbol, es un ejercicio que debierais probar para obtener los resultados mas óptimos para vuestros propósitos.

« Anterior
Indice
Siguiente »