Esta web apoia iniciativa dun dominio galego propio (.gal) en Internet

php cheat sheet

6 de Agosto de 2008   Archivado en php

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

 

 php cheat sheet

Por cierto, la chuleta fué creada por Manz de Emezeta.

[ php cheat sheet ]

Crear una lista dinámica

1 de Agosto de 2008   Archivado en php

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

 

 

Adobe Max 2008

28 de Julio de 2008   Archivado en diseño, jornadas, software

Adobe MAX

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.

Mudanza y cambio de residencia

19 de Julio de 2008   Archivado en personal

Ría de Vigo

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 !!

WordPress 2.6 en castellano

19 de Julio de 2008   Archivado en wordpress

WordPress en castellano

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 ]

Cambio de servidor

17 de Julio de 2008   Archivado en personal, servidores

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.

Meme: 10 Razones por las que me gusta bloguear

15 de Julio de 2008   Archivado en personal

Y otro más. Otro meme más de gafeMan.

En esta ocasión, las 10 razones por las que me gusta bloguear.

  1. Para compartir conocimientos
  2. Como recordatorio de ciertos códigos, scripts o enlaces
  3. Para ser moderno y poder decir que tengo un “blog”, aunque a los del banco parece que no les importa.
  4. Para salir en la prensa
  5. Para relacionarme
  6. Para ligar, aunque ellas no se den cuenta
  7. Para en una conversación de intelectuales poder decir, “Precisamente de eso hago un comentario en mi blog”
  8. ya llego 8 razones…
  9. Puedo pedir el comodín del público ?
  10. PasoPalabra

Estooo, ah, si, paso el testigo a Francisco Moreno y a Jasp

 

Meme: Moral bloguera

15 de Julio de 2008   Archivado en meme, personal

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.

 

Hala, acabado. Le paso el testigo a r0sk y a Seve.

Emulando a los iframes con css

12 de Julio de 2008   Archivado en css, xhtml

Layout frame

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 del Beers&Blog de Lugo

11 de Julio de 2008   Archivado en Blogs, ordenadores, personal

É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.

[ Click para ampliar ]

Beers&Blog

Archivo

Categorías

Calendario

Agosto 2008
L M J V D
« Jul    
 123
45678910
11121314151617
18192021222324
25262728293031

Anunciantes