Otro blog más de diseño
Aunque es un tema un poco antiguo, nunca está de más hacer un recordatorio sobre esta chuleta, sobre todo si vas a hacer un post de php y no sale como debe. Desde luego que yo me lo voy a estudiar a fondo 8¬P

Por cierto, la chuleta fué creada por Manz de Emezeta.
[ php cheat sheet ]
En ocasiones nos es necesario crear una lista (<ul>) de un determinado número de registros de una base de datos. Y para rizar el rizo, esos datos están entrelazados, es decir, que unos registros dependen de otros.
Lo más fácil es crear un recordset, y dentro del bucle crear otro con los parámetros necesarios, pero ay!! que suele suceder que no nos resulta posible el saber cuantos registros habrán ni cuantos niveles de profundidad tendremos.
Vamos a partir de una base de datos llamada por ejemplo “registros”. “Registros” tendrá podría tener 3 campos (y añadir más no sería complicado).
CREATE TABLE `registros` ( `id` int(11) NOT NULL auto_increment, `sub_id` int(11) NOT NULL default '0', `registro` varchar(80) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
Como podemos comprobar tenemos un campo “id” autonumérico, un campo “sub_id” por el cuál relacionaremos un registro con otro, y un último campo llamado “registro” ( en original no me gana nadie) y como decía antes, para muchos casos será necesario el añadir más campos, lo cuál se puede hacer con total normalidad.
La idea es relacionar una serie de ciudades, con sus provincias, y a estas con sus comunidades y países.
Y como buen mago, guardo en el bolsillo todos esos registros.
INSERT INTO `registros` VALUES (1, 0, 'España');
INSERT INTO `registros` VALUES (2, 0, 'Portugal');
INSERT INTO `registros` VALUES (3, 1, 'Galicia');
INSERT INTO `registros` VALUES (4, 1, 'Asturias');
INSERT INTO `registros` VALUES (5, 2, 'Oporto');
INSERT INTO `registros` VALUES (6, 2, 'Lisboa');
INSERT INTO `registros` VALUES (7, 2, 'Chaves');
INSERT INTO `registros` VALUES (8, 3, 'Pontevedra');
INSERT INTO `registros` VALUES (9, 3, 'La Coruña');
INSERT INTO `registros` VALUES (10, 3, 'Ourense');
INSERT INTO `registros` VALUES (11, 3, 'Lugo');
INSERT INTO `registros` VALUES (12, 4, 'Oviedo');
INSERT INTO `registros` VALUES (13, 8, 'Pontevedra');
INSERT INTO `registros` VALUES (14, 8, 'Vigo');
INSERT INTO `registros` VALUES (15, 8, 'Cangas');
INSERT INTO `registros` VALUES (16, 9, 'La Coruña');
INSERT INTO `registros` VALUES (17, 9, 'Santiago
de Compostela');
INSERT INTO `registros` VALUES (18, 9, 'Ferrol');
INSERT INTO `registros` VALUES (19, 12, 'Oviedo');
INSERT INTO `registros` VALUES (20, 12, 'Gijón');
Bueno, tenemos nuestra base de datos, la tabla y también los datos. Ahora solo nos queda plasmar la idea. Y como todo, es muy sencilla.Crearemos una función con un recordset cuya consulta vaya filtrada por su “sub_id” que es el que relaciona a un registro con otro y dentro de los resultados que nos devuelva la consulta, llamamos a la función que estamos creando, pasándole como parámetro el “id” de ese registro.
Y como es más fácil mostrarlo que contarlo, nos ponemos a ello.
<?php
// Creamos la conexion
$hostname_conn = "localhost";
$database_conn = "pruebas";
$username_conn = "root";
$password_conn = "";
$conn = mysql_pconnect($hostname_conn,
$username_conn, $password_conn) or
trigger_error(mysql_error(),E_USER_ERROR);
function arbol($id=0)
{
// Convertimos a globales el nombre de la bd y la conexion
global $database_conn, $conn;
// Creamos el recordset
mysql_select_db($database_conn, $conn);
$query_rsRegistro = 'SELECT * from registros
WHERE sub_id = '.$id;
$rsRegistro = mysql_query($query_rsRegistro, $conn)
or die(mysql_error());
$row_rsRegistro = mysql_fetch_assoc($rsRegistro);
$totalRows_rsRegistro = mysql_num_rows($rsRegistro);
// Comprobamos que no esta vacia
if($totalRows_rsRegistro > 0)
{
// Inicializamos la lista
echo '<ul>';
// Mostramos todos los resultados
do
{
echo '<li>'.$row_rsRegistro['registro'];
// Ejecutamos la funcion dentro de si misma
// Y le pasamos el id del registro actual
arbol($row_rsRegistro['id']);
echo ‘</li>’;
}
while($row_rsRegistro = mysql_fetch_assoc($rsRegistro));
echo ‘</ul>’;
}
}
?>
Ahora solo nos queda realizar la llamada en el lugar que consideremos oportuno, haciéndolo de la siguiente manera
<?php arbol();?>
Fácil, no ? Esto nos devuelve algo similar a esto.
* España
* Galicia
* Pontevedra
* Pontevedra
* Vigo
* Cangas
* La Coruña
* La Coruña
* Santiago de Compostela
* Ferrol
* Ourense
* Lugo
* Asturias
* Oviedo
* Oviedo
* Gijón
* Portugal
* Oporto
* Lisboa
* Chaves

Está claro que cada vez, las webs son más interactivas y requieren de nuestra acción para “cobrar vida”. Es ahí donde entramos en la eterna polémica de “flash si/flash no“. No voy a entrar en este post en esa polémica y ni falta que me hace. Los que me conocen ya saben lo que pienso.
Los que si están a favor de flash y cada vez apuestan más fuerte por él y su tecnología, demuestran su aprovechamiento en cada una de los sites que crean. Ni que decir tiene que como padres adoptivos, no les queda más remedio, aunque como digo, con cada web, superan un poquito más el listón que ya de por si está alto.
Hablo de la web de Adobe Max 2008. En principio no es nada del otro mundo, incluso podríamos poner alguna pega - en función de la resolución, vemos más o menos web - lo curioso ocurre cuando hacemos click en el fondo (el cuál es aleatorio) e interactuamos con él.
Y hablando de la Adobe Max 2008, ya fué presentado el Flex 4 (Gumbo para los amigos) y su framework, thermo, del que ya he hablado en alguna ocasión.

En la vida todo son ciclos. Después de 7 años con momentos buenos (el nacimiento de mi hija) y momentos menos buenos, cierro este ciclo y comienzo otro (o continúo otro) en Vigo.
Estos días como habréis podido comprobar he posteado menos de lo habitual debido a la preparación de la mudanza que cuadró además con el cambio de hosting. Espero que a partir del Lunes vuelva todo a la normalidad.
La fotografía que acompaña el post es una parte (la cámara me limita) de lo que veo desde mi nuevo piso y como me decían unos amigos, las vistas de por si ya alimentan.
No quiero terminar el post sin acordarme de la gente que he conocido y que con tan buenos momentos he pasado. Y a los amigos “blogueros” que aunque tarde, no he querido irme de aquí sin conocerlos.
Evidentemente no es un adiós a la ciudad, sinó un hasta luego, ya que dejo amigos, y sin duda que volveré por lo menos para visitarlos.
Hasta luego Lugo, hola de nuevo, Vigo !!

Si hace un par de días se hacía oficial la versión 2.6 de Wordpress y por lo tanto su descarga a disposición de los usuarios, ahora es el sitio en español el que hace oficial la descarga.
[ wordpress 2.6 en español ] [ descargar wp 2.6 en español ]
El día de ayer como seguro algunos comprobaron la web estaba caída. El motivo fué un cambio inesperado de servidor, pero supuestamente ahora está todo en su sitio.
Editado: Gracias a Marcos, me entero de que ni las imágenes ni los ejemplos ni descargas funcionan como deben. Ya estoy en ello, por lo que en breve estará disponible. Gracias por vuestra paciencia.
Y otro más. Otro meme más de gafeMan.
En esta ocasión, las 10 razones por las que me gusta bloguear.
Estooo, ah, si, paso el testigo a Francisco Moreno y a Jasp
Sabía que tarde o temprano iba a llegar. Me hacía gracia leer los memes de algunos blog y ahora me toca el turno de hacer y seguir uno de ellos.
Este en concreto me lo pasa el gran gafeMan, y bueno, he aquí mis respuestas.
Bloggear: ¿Amor al arte, hacer amigos o dinero?
Tengo claro que no lo hago por dinero. Me gusta compartir conocimientos y tener un lugar de donde recuperar un enlace, un script o una línea de código. Y si después te salen amigos pués mejor.
¿Diseño o contenido?
Los dos al 50%. Lo uno no puede vivir sin lo otros
¿Adsense o publicidad privada?
En mi caso tengo AdSense, aunque no me dá ni para pipas. Odio los popups y los banners hipermegagigantes.
¿Reviews o publicidad?
Ninguno de los dos.
¿Wordpress o Blogger (u otros)?
“Güorpress”, por supuesto.
¿Valen los “Vía…”?
Por supuesto que valen. En ocasiones es interesante propagar una post por lugares que en otras condiciones no llegarían. Ahora si, yo soy de los que gustan genererar sus propios contenidos, aunque no siempre es posible,
¿te gustaría que copiasen descaradamente entradas de tu blog sin tu consentimiento y sin un enlace a tu blog ?
Me llena de orgullo que posteen algo mío. Evidentemente a uno siempre le gusta que lo citen, más que nada en reconocimiento al trabajo hecho, aunque no siempre es así. Todavía no me he visto en la situación, pero no es algo que me quite el sueño … todavía
¿Trabajar en el SEO, en el contenido o en el diseño?
Evidentemente en todo.
Qué es mejor en una entrada: ¿Muchos comentarios, muchos links o muchas visitas?
Yo prefiero los comentarios, aunque los link llegan a muchos más sitios.
Blogs puramente comerciales: ¿Una vergüenza o sólo otra forma de ganarse el pan?
Me parece una forma muy honrada de ganarse el pan. Acaso los políticos no cobran ?
Feeds: ¿Leer sólo lo esencial o leer de todo?
De todo un poco.

Hoy con unos conocimientos mínimos de css, es posible construir layout complejos con la apariencia de una aplicación de escritorio.
Entonces orgullosos miramos una y otra vez nuestro layout, que además valida xhtml 1.1, copiamos la url y lo comprobamos en Ópera y también en Safari. Y nada, que somos unos hachas… hasta que nos dá por mirarlo en Explorer 6 (porque en el 7 y el 8 aún queda decente), y nos damos cuenta de que no se vé lo que se debería ver, acordándonos de que es imposible combinar las posiciones left y right, top y bottom.
Pero bueno, soluciones haylas, solo hay que exprimirse un poco el cerebro y atacar a explorer por donde le duele.
Y es por eso, que hice unos experimentos con layouts compatibles con los navegadores buenos y los malos. Solo un pero. Si tenéis el explorer 6 instalado con el “multiple Explorer”, aunque este renderiza como explorer 6, es detectado en los comentarios como explorer 7.
[ ejemplos de layouts ] [ descargar ]
Éxito total en la segunda edición del Beers&Blog de Lugo. Una vez más se ha demostrado que el mundo es muy pequeño, y en este caso, casi todos nos conocíamos por segundas personas, y en algún caso de haber trabajado juntos.
La experiéncia fué fabulosa, conocí gente increíble y con unos conocimientos que van más allá de lo que demuestran en sus blog.
La verdad es que tratando de retrasar este post a la espera de alguna de las fotos del evento, pero dado que nos hicieron una entrevista para El Progreso, lo adelanté para que pudiérais ver lo guapos que somos.
Prometido un post más extenso con fotos. Y en breve si Dios quiere el chuletón&Blog. Ah, por cierto, alguno se lució de ayer para hoy.
Qué puedo decir de mi que no se haya dicho ya antes.