<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Como Lo Hago &#187; Bases de Datos</title>
	<atom:link href="http://www.comolohago.cl/category/computacion/bases-de-datos-computacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.comolohago.cl</link>
	<description>Si se puede, te lo enseñamos</description>
	<lastBuildDate>Tue, 10 Jan 2012 16:56:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cómo crear un identificador de teléfonos móviles</title>
		<link>http://www.comolohago.cl/2010/05/09/como-crear-un-identificador-de-telefonos-moviles/</link>
		<comments>http://www.comolohago.cl/2010/05/09/como-crear-un-identificador-de-telefonos-moviles/#comments</comments>
		<pubDate>Sun, 09 May 2010 04:00:27 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Celular]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[telefonia movil]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=3455</guid>
		<description><![CDATA[
¿Cuántas veces nos hemos encontrado con la siguiente situación?:
Nuestro plan de telefonía móvil nos entrega X cantidad de minutos a la Compañía 1, Y cantidad de minutos a la Compañía 2 y Z cantidad de minutos a la compañía 3. Agotamos una de las opciones y necesitamos hacer una llamada urgente, pero empezamos a pensar [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://farm5.static.flickr.com/4011/4590072739_edb6b4e49c_o.png" alt="" width="450" height="177" /></p>
<p style="text-align: justify;">¿Cuántas veces nos hemos encontrado con la siguiente situación?:</p>
<p style="text-align: justify;">Nuestro plan de telefonía móvil nos entrega X cantidad de minutos a la Compañía 1, Y cantidad de minutos a la Compañía 2 y Z cantidad de minutos a la compañía 3. Agotamos una de las opciones y necesitamos hacer una llamada urgente, pero empezamos a pensar <em>¿Y si es de los minutos que ya no me quedan? Me cobrarán extra o no podré hacer la llamada</em>. Y ante la duda, una oportunidad pasa.</p>
<p style="text-align: justify;">Hoy en Internet es posible encontrar algunas aplicaciones que nos permiten reconocer la compañía a la que pertenece un número móvil. Sin embargo,  algunas de ellas presentan requisitos específicos o son de licencia comercial, lo que no las hace accesibles para cualquier persona.</p>
<p style="text-align: justify;">Pero que no panda el cúnico amigos nuestros, que hoy en CLH, mediante un realmente simple y rápido tutorial <em>(siempre lo decimos, pero este en verdad es muy simple)</em>, les enseñaremos a construir un identificador de teléfonos móviles de forma gratuita y en la comodidad de su hogar.</p>
<p style="text-align: justify;">¿Qué hacer? Solo seguirnos después del salto <img src='http://www.comolohago.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;"><span id="more-3455"></span></p>
<p style="text-align: justify;">
<h1 style="text-align: center;">Cómo crear un identificador de teléfonos móviles</h1>
<p style="text-align: justify;">
<blockquote>
<h2 style="text-align: justify;"><img class="alignnone" src="http://www.comolohago.cl/wp-content/uploads/2010/03/search_page.png" alt="" width="27" height="27" />Detalles del tutorial</h2>
<ul style="text-align: justify;">
<li><strong>Tiempo  aproximado de implementación: </strong>30 minutos.</li>
<li><strong>Dificultad:</strong> Básico.</li>
</ul>
<h2 style="text-align: justify;"><img class="alignnone size-full    wp-image-3161" title="tools" src="http://www.comolohago.cl/wp-content/uploads/2010/03/tools.png" alt="tools" width="27" height="27" />Implementos necesarios:</h2>
<ul style="text-align: justify;">
<li><span lang="ES-CL"><span style="font-size: small;">Un servidor Web que ejecute archivos PHP y un sistema de gestión de bases de datos MySQL <em>(Recomendamos <a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a>)</em>.</span></span></li>
<li><span lang="ES-CL"><span style="font-size: small;">La base de numeración telefónica móvil publicada por la Subtel. Pueden descargarla en formato PDF desde el <a href="http://www.subtel.cl/prontus_subtel/site/artic/20061230/asocfile/20061230210846/base_numeracion_oct09.pdf" target="_blank">siguiente enlace</a>.</span></span></li>
<li><span lang="ES-CL"><span style="font-size: small;">Un editor para la codificación <em>(Recomendamos <a href="http://notepad-plus.sourceforge.net/es/site.htm" target="_blank">Notepad++</a>)</em>.</span></span></li>
</ul>
<p><strong>Notas sobre el proceso:</strong></p>
<p style="text-align: justify;">Probablemente en este punto se preguntarán: ¿Cómo funciona esto? Bastante sencillo. La Subsecretaría de Telecomunicaciones en Chile define una serie de prefijos los cuales son asignados en rangos a las distintas compañías que entregan servicios de telefonía móvil. Estos prefijos están compuestos por <strong>4 dígitos</strong> y van desde el 6200 hasta el 9999.</p>
<p style="text-align: justify;">Ahora, ¿qué tienen que ver estos prefijos? Son ellos los que forman la primera mitad de nuestros números de teléfonos móviles. En consecuencia, cada prefijo tiene 4 dígitos más que forman un número único completo. Si nuestras matemáticas no fallan, podemos deducir que eso significa que existe un total de 9999 números de teléfonos móviles únicos por cada prefijo. Considerando que son 3799 prefijos en total, en Chile tenemos 37.986.201 posibles combinaciones de números.</p>
<p style="text-align: justify;">¿Eso significa que eventualmente habrán 37 millones de celulares dando vuelta en el país?. Puede ser, pero de momento no, ya que como podrán fijarse en la base de numeración, hay prefijos asignados a compañías que actualmente no ofrecen servicios de telefonía móvil de libre acceso al público general&#8230; pero nunca se sabe. Adicionalmente, hay algunos rangos de prefijos que no están asignados, lo que deja un total 2620 prefijos y por ende 26.197.380 combinaciones. Pero eso es un dato anecdótico más que nada.</p>
<p style="text-align: justify;">Con esa información, ya tenemos la lógica clara para realizar nuestra aplicación, así que manos a la obra.</p>
</blockquote>
<p style="text-align: justify;">
<h2 style="text-align: justify;">Procedimiento:</h2>
<p style="text-align: justify;">1.- Lo primero que debemos hacer, y que es el paso más crítico, es transformar la base de numeración telefónica a un formato adecuado, ya que la que descargamos esta en formato PDF y no podremos acceder a ella de forma normal, así que nuestro objetivo es traspasarla a nuestra base de datos MySQL con el fin de poder consultarla mediante el script que desarrollaremos.</p>
<p style="text-align: justify;">Para esto tenemos varias opciones:</p>
<ul>
<li style="text-align: justify;">Podemos copiar el contenido de la base y traspasarlo a una planilla Excel, en la cual debemos eliminar las XXXX que aparecen en el campo suscriptor y solo mantener el prefijo y en otra columna la compañía a la que pertenece ese prefijo. Adicionalmente, es bueno que al menos para las tres compañías más conocidas, cambiemos sus nombres completos o razones sociales a nombres más amigables y reconocibles para el usuario <em>(por ej. ENTEL PCS TELECOMUNICACIONES S.A. a ENTEL PCS)</em>.</li>
<li style="text-align: justify;">Una vez que tenemos nuestro Excel armado con el formato que queremos, lo traspasamos a MySQL. ¿Dudas sobre como hacerlo? No se preocupen, en el pasado hemos hecho <a href="http://www.comolohago.cl/2009/05/24/como-importar-a-mysql-desde-excel/" target="_blank">un tutorial que cubre el proceso de forma completa</a>.</li>
</ul>
<p style="text-align: justify;">Pero, equipo de CLH, este proceso es largo y tedioso, ¿pueden echarnos una mano por favor?. Bueno, bueno, pero solo porque lo pidieron por favor. Si hacen click <a href="http://www.comolohago.cl/uploads/numeracion.sql" target="_blank">en este enlace</a>, pueden descargar la base de datos completa lista para importar a MySQL. Pero no le cuenten a nadie, ¿ya?.</p>
<p style="text-align: justify;">El archivo que les dejamos es un fiel reflejo de la base de datos que creamos, llamada<strong> moviles</strong>, la cual tiene una tabla llamada <strong>numeracion</strong>. Esta a su vez tiene 2 campos: <strong>prefijo</strong> (INT) y <strong>empresa</strong> (TEXT). Más sencillo imposible.</p>
<p style="text-align: justify;">2.- Ahora que hemos ordenado nuestros datos, podemos empezar a codificar lo que será nuestra pequeña aplicación. Para empezar, haremos un formulario el cual contendrá un campo de texto para que el usuario ingrese el número de teléfono móvil a consultar y un botón para enviar la consulta. Para esto, crearemos un archivo en formato PHP, llamado <strong>consulta.php</strong>, el cual contendrá además de lo anterior, un autollamado donde se ejecutará el script y consultaremos la base de datos. Pero primero, el formulario:</p>
<pre class="html" title="code">&lt;div id="formulario"&gt;
 &lt;form name="formulario-consulta" id="formulario-consulta" action="consulta.php" method="post"&gt;
 &lt;label for="numero"&gt;Ingrese el n&amp;uacute;mero a consultar:&lt;/label&gt;
 &lt;input type="text" name="numero" id="numero" /&gt;
 &lt;p&gt;&lt;input type="submit" id="submit" name="submit"
value="Consultar n&amp;uacute;mero" /&gt;
 &lt;/form&gt;
&lt;/div&gt;</pre>
<p style="text-align: justify;">3.- Luego de codificar nuestro formulario, procedemos a hacer el código PHP, el cual validará el número ingresado y luego hará cortará los primeros 4 caracteres de la cadena ingresada <em>(para igualarlo al prefijo)</em>, hará la consulta en la base de datos y desplegará el resultado de acuerdo a lo que se obtenga:</p>
<pre class="php" title="code">if($_POST) {

 if($_POST['numero'] == '') {

     $mensaje = "&lt;span id='error'&gt;Debe ingresar un n&amp;uacute;mero para
     consultar.&lt;/span&gt;";

 }
 else {

          if(!$conexion = mysqli_connect("localhost", "usuario", "clave", "bd")) {

              $mensaje = "&lt;span id='error'&gt;No se pudo conectar
              a la base de datos.&lt;/span&gt;";

          }
          else {

                     $numero = substr(trim($_POST['numero']), 0, 4);

                     $consulta = "SELECT empresa FROM numeracion WHERE prefijo = ".$numero;

                     if($resultado = mysqli_query($conexion, $consulta)) {

                           if(mysqli_num_rows($resultado) == 0) {

                               $mensaje = "&lt;span id='error'&gt;No hay coincidencias para el
                               n&amp;uacute;mero ".$_POST['numero'].".&lt;/span&gt;";

                           }
                           else {

                               $datos = mysqli_fetch_array($resultado, MYSQL_ASSOC);

                               $mensaje = "&lt;span id='exito'&gt;El n&amp;uacute;mero ".$_POST['numero']."
                               pertenece a ".$datos['empresa']."&lt;/span&gt;";

                           }

                     }
                     else {

                         $mensaje = "&lt;span id='error'&gt;Ocurri&amp;oacute; un error al ejecutar
                         la consulta. Int&amp;eacute;ntelo nuevamente.&lt;/span&gt;";

                      }

       }

    }

 }</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">4.- El código en si es bastante autoexplicativo. Comprobamos primero si se enviaron datos, conectamos a la base de datos y ejecutamos la consulta. En cada paso creamos una variable llamada <strong>mensaje</strong>, la cual almacena información correspondiente al resultado de la operación. Este mensaje lo añadiremos al final del formulario para que le informe al usuario que sucedió:</p>
<pre class="php" title="code">&lt;div id="mensaje"&gt;&lt;?php 

       if(isset($mensaje)) {

          echo $mensaje;

        }

 ?&gt;&lt;/div&gt;</pre>
<p style="text-align: justify;">5.- De forma opcional, si así lo deseamos, podemos estilizar un poco esta pequeña aplicación, creando un archivo <strong>estilos.css</strong> y añadiéndolo a la cabecera de <strong>consulta.php</strong>:</p>
<pre class="css" title="code">#formulario {

 width: 450px;
 margin: 0 auto;
 font-family: Arial;
 font-size: 11px;
 border: solid 1px black;
 padding: 20px;
 background-color: #fac519;

}

#formulario-consulta {

 margin-left: 150px;

}

#submit {

 font-family: inherit;
 font-size: 11px;

}

label {
 display: block;
}

#mensaje {

 font-family: Arial;
 font-size: 11px;
 padding: 3px;
 border: 1px dashed black;

}

#exito {

 background-color: #6ad11b;

}

#error {

 background-color: #f51414;

}</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">6.- Finalmente, nuestro consulta.php quedaría de la siguiente forma:</p>
<pre class="php" title="code">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
 &lt;link rel="stylesheet" href="estilos.css" /&gt;
 &lt;title&gt;Identificador de tel&amp;eacute;fonos m&amp;oacute;viles&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;?php
 if($_POST) {

 if(empty($_POST['numero'])) {

 $mensaje = "&lt;span id='error'&gt;Debe ingresar un n&amp;uacute;mero para consultar.&lt;/span&gt;";

 }
 else {

 if(!$conexion = mysqli_connect("localhost", "root", "dumbass", "movil")){

 $mensaje = "&lt;span id='error'&gt;No se pudo conectar a la base de datos.&lt;/span&gt;";

 }
 else {

 $numero = substr(trim($_POST['numero']), 0, 4);

 $consulta = "SELECT empresa FROM numeracion WHERE prefijo = ".$numero;

 if($resultado = mysqli_query($conexion, $consulta)) {

 if(mysqli_num_rows($resultado) == 0) {

 $mensaje = "&lt;span id='error'&gt;No hay coincidencias para el n&amp;uacute;mero ".$_POST['numero'].".&lt;/span&gt;";

 }
 else {

 $datos = mysqli_fetch_array($resultado, MYSQL_ASSOC);

 $mensaje = "&lt;span id='exito'&gt;El n&amp;uacute;mero ".$_POST['numero']." pertenece a ".$datos['empresa']."&lt;/span&gt;";

 }

 }
 else {

 $mensaje = "&lt;span id='error'&gt;Ocurri&amp;oacute; un error al ejecutar la consulta. Int&amp;eacute;ntelo nuevamente.&lt;/span&gt;";

 }

 }

 }

 }
 ?&gt;
 &lt;div id="formulario"&gt;
 &lt;form name="formulario-consulta" id="formulario-consulta" action="consulta.php" method="post"&gt;
 &lt;label for="numero"&gt;Ingrese el n&amp;uacute;mero a consultar:&lt;/label&gt;
 &lt;input type="text" name="numero" id="numero" /&gt;
 &lt;p&gt;&lt;input type="submit" id="submit" name="submit" value="Consultar n&amp;uacute;mero" /&gt;
 &lt;/form&gt;
 &lt;div id="mensaje"&gt;&lt;?php 

 if(isset($mensaje)) {

 echo $mensaje;

 }

 ?&gt;&lt;/div&gt;
 &lt;/div&gt;

 &lt;/body&gt;
&lt;/html&gt;</pre>
<p style="text-align: justify;">Probamos y todo debiese funcionar sin problemas.</p>
<p style="text-align: justify;">Y así de simple tenemos un identificador de números móviles para cuando lo necesitemos. Si nos fijamos, el proceso es bastante simple de implementar, por lo que los incentivamos a animarse, en solo minutos tendrán una muy útil aplicación para compartir.</p>
<p style="text-align: justify;"><strong>Notas antes del cierre:</strong></p>
<p style="text-align: justify;">1.- Para nuestros amigos de fuera del país, lamentablemente este proceso sirve para Chile. Sin embargo, nos imaginamos que afuera debe ser bastante similar, por lo que los invitamos a compartir sus experiencias con otros usuarios.</p>
<p style="text-align: justify;">Antes de terminar:</p>
<p style="text-align: justify;"><a href="http://www.comolohago.cl/uploads/moviles.rar" target="_blank"><img class="aligncenter" src="http://farm3.static.flickr.com/2749/4471629680_c89163fa14_o.png" alt="" width="279" height="105" border="0" /></a></p>
<p style="text-align: justify;">Y como siempre les recordamos que este tutorial ha sido:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm4.static.flickr.com/3043/3056524059_ed7150e191_o.jpg" alt="" width="400" height="314" />Cualquier duda que puedan tener, los invitamos a dejar un comentario a continuación.</p>
<p style="text-align: justify;">Esperamos que este tutorial haya sido de utilidad para Uds.</p>
<p style="text-align: justify;">Muchas gracias por leer y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2010/05/09/como-crear-un-identificador-de-telefonos-moviles/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Cómo crear una galería de imágenes para tu Web</title>
		<link>http://www.comolohago.cl/2010/03/29/como-crear-una-galeria-de-imagenes-para-tu-web/</link>
		<comments>http://www.comolohago.cl/2010/03/29/como-crear-una-galeria-de-imagenes-para-tu-web/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 18:41:56 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=3194</guid>
		<description><![CDATA[
Continuando con nuestra larga saga de tutoriales sobre diseño Web, en esta ocasión les traemos un pequeño desarrollo que sin duda puede ser de gran utilidad para nuestros sitios, en especial si queremos montar una especie de portafolio o una simple galería para desplegar imágenes.
En un esfuerzo conjunto e integración de tecnologías como PHP, jQuery, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://farm3.static.flickr.com/2761/4471619828_0bc2fd38de_o.png" alt="" width="450" height="174" /></p>
<p style="text-align: justify;">Continuando con nuestra larga saga de tutoriales sobre diseño Web, en esta ocasión les traemos un pequeño desarrollo que sin duda puede ser de gran utilidad para nuestros sitios, en especial si queremos montar una especie de portafolio o una simple galería para desplegar imágenes.</p>
<p style="text-align: justify;">En un esfuerzo conjunto e integración de tecnologías como PHP, jQuery, CSS, XHTML y un poco de MySQL, hoy veremos un paso a paso de como construir una simple galería de imágenes desde cero.</p>
<p style="text-align: justify;">El detalle, como siempre, después del salto.</p>
<p style="text-align: justify;"><span id="more-3194"></span></p>
<h1 style="text-align: center;">Cómo crear una galería de imágenes para tu Web</h1>
<p style="text-align: justify;">Como siempre, lo primero:</p>
<blockquote>
<h2 style="text-align: justify;"><img class="alignnone" src="http://www.comolohago.cl/wp-content/uploads/2010/03/search_page.png" alt="" width="27" height="27" />Detalles del tutorial</h2>
<ul style="text-align: justify;">
<li><strong>Tiempo aproximado de implementación: </strong>60 minutos.</li>
<li><strong>Dificultad:</strong> Intermedio.</li>
<li><strong>Conocimientos requeridos:</strong> Idealmente nociones de PHP, XHTML, CSS, jQuery y bases de datos, especialmente si quieren personalizar el diseño final. De cualquier forma, todo será explicado paso a paso en caso de que deseen implementar tal como está acá.</li>
</ul>
<h2 style="text-align: justify;"><img class="alignnone size-full wp-image-3161" title="tools" src="http://www.comolohago.cl/wp-content/uploads/2010/03/tools.png" alt="tools" width="27" height="27" />Implementos necesarios:</h2>
<ul style="text-align: justify;">
<li>Un servidor que pueda ejecutar archivos PHP. <em>(Recomendamos XAMPP</em> <em>para Windows, Linux y Mac)</em>.</li>
<li>Un sistema gestor de bases de datos MySQL <em>(En XAMPP viene uno incluido)</em>.</li>
<li>Opcionalmente un editor Web <em>(Recomendamos Adobe Dreamweaver o Aptana Studio).</em></li>
<li>Un editor de imágenes <em>(Recomendamos Adobe Photoshop)</em>.</li>
<li>La librería jQuery, que pueden obtener desde su <a href="http://jquery.com/" target="_blank">sitio oficial</a>.</li>
<li>Imágenes para montar en la galería. Para este caso utilizamos algunas de la <a href="http://www.flickr.com/photos/27805557@N08/" target="_blank">galería de JoesSistah</a>, las cuales están bajo una licencia Creative Commons.</li>
</ul>
</blockquote>
<p style="text-align: justify;">Con eso claro, vamos, manos a la obra:</p>
<p style="text-align: justify;">1.- Lo primero que haremos será crear una base de datos en nuestro MySQL y en el una tabla llamada imagen, la cual contendrá 4 campos de información:</p>
<pre class="sql" title="code">CREATE TABLE 'clh'.'imagen' (
'id' INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'titulo' VARCHAR( 50 ) NOT NULL ,
'descripcion' TEXT NOT NULL ,
'archivo' VARCHAR( 20 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci</pre>
<p style="text-align: justify;">Repasando nuestro código anterior, lo que hemos hecho ha sido crear una tabla llamada imagen, la cual contiene 4 campos:</p>
<ul style="text-align: justify;">
<li><strong>id:</strong> Contendrá un número identificatorio para cada imagen, lo hemos dejado con auto increment para que cada vez que se inserte un nuevo registro aumente automáticamente.</li>
<li><strong>titulo:</strong> Contendrá el título de la imagen.</li>
<li><strong>descripcion: </strong>Contendrá la descripción de la imagen.</li>
<li><strong>archivo:</strong> Contendrá el nombre del archivo y su extensión para luego llamarlo desde nuestra galería.</li>
</ul>
<p style="text-align: justify;">2.- Luego que hemos creado la tabla, insertaremos información de 4 imágenes:</p>
<pre class="sql" title="code">INSERT INTO imagen( titulo, descripcion, archivo ) VALUES (
'Paisaje Numero 1', 'Imagen representativa de un paisaje con costa',
'1.jpg')

INSERT INTO imagen( titulo, descripcion, archivo ) VALUES (
'Paisaje Numero 2', 'Imagen representativa de un paisaje con nieve',
'2.jpg')

INSERT INTO imagen( titulo, descripcion, archivo ) VALUES (
'Paisaje Numero 3', 'Imagen representativa de un paisaje con una
luna en el fondo', '3.jpg')

INSERT INTO imagen( titulo, descripcion, archivo ) VALUES (
'Imagen abstracta', 'Representacion de una mariposa',
'4.jpg')</pre>
<p style="text-align: justify;">3.- Con eso debiésemos tener una tabla de la siguiente forma:</p>
<p style="text-align: justify;">
<table id="wp-table-reloaded-id-2-no-1" class="wp-table-reloaded wp-table-reloaded-id-2">
<thead>
	<tr class="row-1">
		<th class="column-1">id</th><th class="column-2">titulo</th><th class="column-3">descripcion</th><th class="column-4">archivo</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td class="column-1">1</td><td class="column-2">Paisaje Numero 1</td><td class="column-3">Imagen representativa de un paisaje con costa</td><td class="column-4">1.jpg</td>
	</tr>
	<tr class="row-3">
		<td class="column-1">2</td><td class="column-2">Paisaje Numero 2</td><td class="column-3">Imagen representativa de un paisaje con nieve</td><td class="column-4">2.jpg</td>
	</tr>
	<tr class="row-4">
		<td class="column-1">3</td><td class="column-2">Paisaje Numero 3</td><td class="column-3">Imagen representativa de un paisaje con una luna en el fondo</td><td class="column-4">3.jpg</td>
	</tr>
	<tr class="row-5">
		<td class="column-1">4</td><td class="column-2">Imagen abstracta</td><td class="column-3">Representacion de una mariposa</td><td class="column-4">4.jpg</td>
	</tr>
</tbody>
</table>
</p>
<p style="text-align: justify;">4.- Con nuestra tabla creada, y antes de empezar a codificar, haremos la preparación de nuestras imágenes. Para la galería, necesitaremos 3 tamaños de las mismas imágenes, 2 los fijaremos en imágenes distintas y 1 lo redimensionaremos vía CSS. Así que necesitaremos:</p>
<ul style="text-align: justify;">
<li>Tamaño normal de las imágenes para la vista completa. En este caso utilizamos 400px.</li>
<li>Tamaño reducido para los previews o thumbnails. En este caso utilizamos 150px.</li>
<li>Tamaño aún más reducido para los previews bajo la vista completa. En este caso utilizamos 75px. Este es el que ajustaremos vía CSS.</li>
</ul>
<p>Los 2 primeros pueden hacerlo mediante su editor de imágenes favorito.</p>
<p style="text-align: justify;">5.- Con todo aquello listo, procedemos a codificar. Nuestra galería contará de 2 archivos en formato PHP, uno donde desplegaremos un preview de las imágenes y añadiremos un pequeño efecto en jQuery para que estas aparezcan oscuras al cargar la página y que solo sean completamente visibles cuando el usuario pase el mouse por encima, y el otro funcionará como un visor de la imagen en tamaño completo, con su respectiva información y enlaces para imágenes siguientes y anteriores, así como otro preview de la misma galería en un tamaño más pequeño. Adicionalmente codificaremos un archivo en formato CSS para el estilo de la galería y un archivo en formato JS para nuestras funciones en jQuery. Así que resumiendo, los archivos que crearemos son:</p>
<ul>
<li>index.php</li>
<li>visor.php</li>
<li>estilos.css</li>
<li>funciones.js</li>
</ul>
<p style="text-align: justify;">Vamos con el primero. Los comentarios como siempre, dentro del código:</p>
<h2 style="text-align: justify;">index.php</h2>
<pre class="php" title="code">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
		/* Incluimos la hoja de estilos, la libreria jquery y
                nuestra libreria de funciones */
                &lt;link rel="stylesheet" href="css/estilos.css" /&gt;
		&lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"&gt;&lt;/script&gt;
		&lt;script type="text/javascript" src="js/funciones.js"&gt;&lt;/script&gt;
		&lt;title&gt;Galer&amp;iacute;a de Im&amp;aacute;genes&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;

		&lt;div id="galeria"&gt;
			&lt;h1&gt;Mi galer&amp;iacute;a de im&amp;aacute;genes&lt;/h1&gt;
		&lt;?php
                /* Conectamos a la BD para obtener la informacion de
                las imagenes que tenemos guardadas */
  		$conexion = new mysqli('localhost', 'usuario', 'clave', 'clh');
		$consulta = "SELECT id, titulo, descripcion, archivo
                FROM imagen";

		// Obtenemos el resultado de la consulta
                $resultado = $conexion-&gt;query($consulta);

		// Desplegamos las imagenes con un enlace a su id
                while($filas = $resultado-&gt;fetch_array(MYSQLI_ASSOC)) {

		?&gt;
		&lt;a href="visor.php?id=&lt;?php echo $filas['id']; ?&gt;"&gt;
   &lt;img src="img/t-&lt;?php echo $filas['archivo']; ?&gt;" alt="imagen" /&gt;
         &lt;/a&gt;
		&lt;?php }
		?&gt;

		&lt;/div&gt;

	&lt;/body&gt;
&lt;/html&gt;</pre>
<p style="text-align: justify;">En resumen, lo que hemos hecho en nuestro index.php, yendo paso a paso:</p>
<ol style="text-align: justify;">
<li>Incluimos la hoja de estilo, la librería jQuery y nuestra librería de funciones.</li>
<li>Conectamos a la base de datos y obtenemos toda la información de las imágenes que tenemos almacenadas.</li>
<li>Desplegamos las imágenes con un enlace hacia el visor y pasamos como parámetro el id de la imagen para luego obtener más información.</li>
</ol>
<p style="text-align: justify;">Y ahora continuamos con el visor, en donde podremos mostrar las imágenes en tamaño completo y con más información:</p>
<h2 style="text-align: justify;">visor.php</h2>
<pre class="php" title="code">&lt;?php
/* Obtenemos el id que fue pasado
como parametro por URL, y luego
creamos 2 variables: prev y sig
que corresponden a la id anterior y
siguiente de la imagen actual */
$id = $_GET['id'];
$prev = $id-1;
$sig = $id+1;

/* Conectamos a la BD y obtenemos la
informacion de la imagen actual*/
$conexion = new mysqli('localhost', 'usuario', 'clave', 'clh');
$consulta = "SELECT titulo, descripcion, archivo
FROM imagen WHERE id = $id";

$resultado = $conexion-&gt;query($consulta);

$fila = $resultado-&gt;fetch_array(MYSQLI_ASSOC);

/* Luego conectamos a la BD y obtenemos la
primera y ultima id de imagen, para saber cuando
se trata de la ultima y/o primera imagen de la
galeria */
$consulta = "SELECT min(id) as minimo, max(id) as maximo FROM imagen";
$resultado = $conexion-&gt;query($consulta);

$datos = $resultado-&gt;fetch_array(MYSQLI_ASSOC);
?&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
// Creamos el titulo de la pagina de acuerdo a la imagen
&lt;title&gt;Galer&amp;iacute;a de Im&amp;aacute;genes - &lt;?php echo $fila['titulo'];?&gt;
&lt;/title&gt;
// Incluimos la hoja de estilo y librerias
&lt;link rel="stylesheet" href="css/estilos.css" /&gt;
&lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/funciones.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="contenedor"&gt;
  &lt;?php
/* Comparamos la id actual con la menor id de la tabla
para saber si es la primera imagen de la galeria.
Si no es igual, mostramos un enlace para la imagen
anterior */
	if($id != $datos['minimo']) {
  ?&gt;
  &lt;a  href="visor.php?id=&lt;?php echo $prev; ?&gt;"&gt;
  &lt;img src="img/back.png" /&gt;
   &lt;/a&gt;
/* De lo contrario, mostramos una imagen
indicando que no hay nada antes */
  &lt;?php }
	else {
  ?&gt;
  &lt;img src="img/block.png" alt="Primera imagen" /&gt;

  &lt;?php }
  ?&gt;

/* Desplegamos la imagen actual en tamaño completo
con su respectiva descripcion */
  &lt;img id="imgcompleta" src="img/&lt;?php echo $fila['archivo']; ?&gt;"
  alt="&lt;?php echo $fila['descripcion'];?&gt;" /&gt;

/* Comparamos la id actual a la mayor id de la tabla
para saber si es la ultima imagen. Si no es igual
mostramos un enlace para la imagen siguiente */
  &lt;?php if($id != $datos['maximo']){
  ?&gt;

  &lt;a  href="visor.php?id=&lt;?php echo $sig; ?&gt;"&gt;
  &lt;img src="img/next.png" /&gt;
  &lt;/a&gt;

/* De lo contrario, mostramos una imagen
indicando que no hay nada despues */
  &lt;?php }
  else {
  ?&gt;
  &lt;img src="img/block.png"  alt="&amp;Uacute;ltima imagen" /&gt;

  &lt;?php }?&gt;
/* Establecemos un pequeño div para la
informacion de la imagen. Cuando el usuario
pase el mouse por encima, apareceran los datos
(titulo y descripcion) */
  &lt;div id="masinfo"&gt;&lt;h4&gt;Informaci&amp;oacute;n de la imagen &lt;a href="#"&gt;&lt;img src="img/add.png" alt="M&amp;aacute;s informaci&amp;oacute;n" /&gt;&lt;/a&gt;&lt;/h4&gt;&lt;/div&gt;

/* Este div mostrara la informacion de la imagen.
Por defecto lo dejaremos oculto mediante CSS y
solo se mostrara al pasar el mouse sobre el */
     &lt;div id="info"&gt;
     &lt;p&gt;T&amp;iacute;tulo: &lt;?php echo $fila['titulo'];?&gt;&lt;/p&gt;
     &lt;p&gt;Descripci&amp;oacute;n: &lt;?php echo $fila['descripcion'];?&gt;&lt;/p&gt;
     &lt;/div&gt;
  &lt;/div&gt;

/* Al igual que en index, mostraremos la
galeria completa, solo que esta vez las
imagenes seran mas pequeñas */
 &lt;div id="galeria-small"&gt;
	&lt;h3&gt;Mis otras im&amp;aacute;genes&lt;/h3&gt;
	&lt;?php 

	$cons = "SELECT id, titulo, descripcion, archivo FROM imagen";

	$res = $conexion-&gt;query($cons);

	while($filas = $res-&gt;fetch_array(MYSQLI_ASSOC)) {

	?&gt;

	&lt;a href="visor.php?id=&lt;?php echo $filas['id']; ?&gt;"&gt;
        &lt;img src="img/t-&lt;?php echo $filas['archivo']; ?&gt;" alt="imagen" /&gt;
        &lt;/a&gt;

	&lt;?php }

	?&gt;

  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p style="text-align: justify;">Resumiendo el archivo anterior, lo que hicimos fue:</p>
<ol style="text-align: justify;">
<li>Obtuvimos la id enviada por parámetro para obtener la información de la imagen actual.</li>
<li>Obtuvimos la primera y última id de imágenes almacenadas para saber cuando tratamos con la primera y/o última imagen de la galería.</li>
<li>Cargamos la hoja de estilos y librerías.</li>
<li>Comparamos la id actual con la menor existente en la base de datos para saber si es la primera imagen de la galería. De ser así, mostramos una imagen que indica que no hay nada antes. De lo contrario, mostramos una imagen con un enlace a la imagen anterior.</li>
<li>Mostramos la imagen actual en tamaño completo.</li>
<li>Lo mismo que el punto 4, pero ahora con la última id y la imagen siguiente.</li>
<li>Creamos un div para la información de la imagen el cual permanecerá oculto hasta que el usuario pase el mouse por encima.</li>
</ol>
<p style="text-align: justify;">Ya con eso listo, nos falta declarar nuestras funciones en jQuery y nuestra hoja de estilos. Partiremos por las funciones:</p>
<h2 style="text-align: justify;">funciones.js</h2>
<pre class="javascript" title="code">$(function(){

/* Este es un efecto inicial sobre la galeria,
en el cual decimos basicamente que cuando
la pagina cargue, las imagenes se muestren mas
oscuras y que al pasar el mouse por encima
tomen su opacidad natural. Para esto utilizamos
las funciones animate, hover y stop de jQuery. */
  $('#galeria img').animate({
	"opacity" : .5
  });

  $('#galeria img').hover(function(){

	$(this).stop().animate({ "opacity" : 1 });

   }, function(){

	$(this).stop().animate({ "opacity" : .5});

  });

/* Repetimos el mismo efecto para la galeria
pequeña que mostramos en el visor */

  $('#galeria-small img').animate({
	"opacity" : .5
  });

  $('#galeria-small img').hover(function(){

	$(this).stop().animate({ "opacity" : 1 });

  }, function(){

	$(this).stop().animate({ "opacity" : .5});

  });

/* Ahora aplicamos la funcion para que cuando
un usuario pase el mouse por encima del div con id
masinfo, se despliegue la informacion del div info
del visor. Esto lo haremos mediante las funciones
hover, fadeIn y fadeOut de jQuery */

  $('#masinfo').hover(function(){
 	$('#info').fadeIn();
  }, function(){
        $('#info').fadeOut();
  });

});</pre>
<p style="text-align: justify;">En resumen, lo que hicimos aquí fue:</p>
<ol style="text-align: justify;">
<li>Creamos 3 funciones para que estén disponibles cuando la página cargue.</li>
<li>La primera agregará un efecto de opacidad sobre la galería que se desactivará cuando el usuario pose el mouse encima.</li>
<li>La segunda agregará el mismo efecto pero a la galería pequeña que añadimos al visor.</li>
<li>La tercera hará aparecer la información de la imagen cuando el usuario pose el mouse sobre el div &#8216;masinfo&#8217; del visor y a su vez la hará desaparecer cuando mueva el mouse de ahí.</li>
</ol>
<p style="text-align: justify;">Y ahora nos queda la parte final, que es declarar los estilos:</p>
<h2 style="text-align: justify;">estilos.css</h2>
<pre class="css" title="code">body {
	background: black;
	color: white;
	font-family: Arial, Helvetica, sans-serif;
	width: 100%;
	margin: 0 auto;

}

#galeria{
	width: 800px;
	margin: 0 auto;
}

#galeria img{
	border: 1px solid white;
	padding: 1px;
	margin-right: 10px;
	margin-bottom: 10px;

}

#galeria-small{
	width: 800px;
	margin: 0 auto;
}
#galeria-small img{
	width: 100px;
	height: 100px;
	border: 1px solid white;

}

#contenedor{
	width: 800px;
	margin: 0 auto;
	padding-top: 10px;
}

#imgcompleta{
	border: 1px solid white;
}

a img{
	border: none;
}

/* Este es el div con informacion de
la imagen. Inicialmente cargara con
display:none para que no sea visto a menos
que el usuario pose el mouse encima */

#info {
	display: none;
}</pre>
<p style="text-align: justify;">Y con eso tenemos nuestro resultado final:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm5.static.flickr.com/4067/4471843750_4664307880_o.png" alt="" width="600" height="211" /></p>
<p style="text-align: center;"><em>Primera vista de la galería</em></p>
<p style="text-align: center;"><em><img class="aligncenter" src="http://farm5.static.flickr.com/4019/4471064613_000385323e_o.png" alt="" width="600" height="214" /></em></p>
<p style="text-align: center;"><em>La imagen toma su opacidad natural al pasar el mouse por encima</em></p>
<p style="text-align: center;"><em><img class="aligncenter" src="http://farm5.static.flickr.com/4070/4471064845_1d8edde285_o.png" alt="" width="600" height="526" /></em></p>
<p style="text-align: center;"><em>Vista completa de la primera imagen</em></p>
<p style="text-align: center;"><em><img class="aligncenter" src="http://farm3.static.flickr.com/2788/4471844222_b7092f614e_o.png" alt="" width="600" height="579" /></em></p>
<p style="text-align: center;"><em>Información de la primera imagen al pasar el mouse por encima del div de información</em></p>
<p style="text-align: center;"><em><img class="aligncenter" src="http://farm3.static.flickr.com/2776/4471065273_0105b08d51_o.png" alt="" width="600" height="482" /></em></p>
<p style="text-align: center;"><em>Vista completa de imagen que tiene una previa y una siguiente</em></p>
<p style="text-align: center;"><em><img class="aligncenter" src="http://farm3.static.flickr.com/2787/4471844630_0b64eee812_o.png" alt="" width="600" height="538" /></em></p>
<p style="text-align: center;"><em>Vista completa de la última imagen</em></p>
<p style="text-align: justify;">Antes de terminar, y comprendiendo que este tutorial ha sido largo, integramos una nueva característica a estos tutoriales:</p>
<p style="text-align: justify;"><a href="http://www.comolohago.cl/uploads/galeria/"><br />
</a><a href="http://www.comolohago.cl/uploads/galeria.rar"><img class="aligncenter" style="border: 0pt none;" src="http://farm3.static.flickr.com/2749/4471629680_c89163fa14_o.png" alt="" width="279" height="105" /></a>Y con eso damos por terminado este tutorial, recordándoles como siempre que ha sido:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm4.static.flickr.com/3043/3056524059_ed7150e191_o.jpg" alt="" width="400" height="314" />Esperamos que haya sido de utilidad para Uds. Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.</p>
<p style="text-align: justify;">Muchas gracias por leer y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2010/03/29/como-crear-una-galeria-de-imagenes-para-tu-web/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Recordando Tutoriales: Como instalar Wordpress en Localhost</title>
		<link>http://www.comolohago.cl/2010/02/14/como-instalar-wordpress-en-localhost/</link>
		<comments>http://www.comolohago.cl/2010/02/14/como-instalar-wordpress-en-localhost/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 04:38:15 +0000</pubDate>
		<dc:creator>Jorge Nitales</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Localhost]]></category>
		<category><![CDATA[Xampp]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=457</guid>
		<description><![CDATA[
Hoy vamos a ver como poner montar su blog en su pc para que tengan la posibilidad de editar sin conexion a internet y de una manera más comoda y rapida.
Para ver Como Lo Hago, vamos despues del salto.

Como instalar Wordpress en Localhost
¿Que Necesitamos?
- Xampp, lo pueden descargar aquí
- Wordpress, lo pueden descargar aquí
Ojo, con [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3363/3643152820_2f8d1f82bc.jpg?v=0" alt="" width="400" height="376" /></p>
<p style="text-align: justify;">Hoy vamos a ver como poner montar su blog en su pc para que tengan la posibilidad de editar sin conexion a internet y de una manera más comoda y rapida.</p>
<p style="text-align: justify;">Para ver Como Lo Hago, vamos despues del salto.</p>
<p style="text-align: justify;"><span id="more-457"></span></p>
<h1 style="text-align: center;">Como instalar Wordpress en Localhost</h1>
<h3>¿Que Necesitamos?</h3>
<p>- Xampp, lo pueden descargar <a href="http://www.apachefriends.org/en/xampp-windows.html#641" target="_blank">aquí</a></p>
<p>- Wordpress, lo pueden descargar <a href="http://es.wordpress.org/wordpress-2.7.1-es_ES.zip" target="_blank">aquí</a></p>
<blockquote><p>Ojo, con el paso del tiempo las versiones pueden ser incompatibles.</p></blockquote>
<h3>¿Como Lo Hago?</h3>
<p style="text-align: justify;">1.- Instalamos Xampp, recomiendo la ubicación C:Xampp, que además es la que viene por defecto.</p>
<p style="text-align: justify;">2.- Realizado esto, vamos a la carpeta donde instalamos Xampp y ejecutamos el archivo Xampp_Start.exe, se abrirá una ventana, esperamos a que se cierre por si sola.</p>
<blockquote><p>Si en este punto, xampp se ejecuta pero no logran ver las páginas, es por causa de la compatibilidad antes dichas</p></blockquote>
<p style="text-align: justify;">3.- Una vez que se haya cerrado la ventana, abrimos Internet Explorer y vamos a la URL http://localhost/phpmyadmin, nos encontraremos con algo parecido a un panel de cotrol, al centro de la pantalla encontramos algo como esto:</p>
<p style="text-align: justify;"><a href="http://farm4.static.flickr.com/3389/3643152868_9fe65f4896.jpg?v=0" target="_blank"><img src="http://farm4.static.flickr.com/3389/3643152868_9fe65f4896.jpg?v=0" alt="" width="259" height="81" /></a></p>
<p style="text-align: justify;"><em>Click para agrandar</em></p>
<p style="text-align: justify;">4.- Con esto crearemos una base de datos, el nombre lo puede elegir ustedes, recomiendo Wordpress para no confundirse.</p>
<p style="text-align: justify;">5.- Hecho esto, descomprimimos el archivo de wordpress que descargamos  y copiamos el contenido dentro de la carpeta htdocs que se encuentra donde instalamos Xampp (copiamos toda la carpeta que probablemente se llame &#8220;Wordpress&#8221;).</p>
<p style="text-align: justify;">6.- Una vez hecho esto, volvemos a Internet Explorer y ahora vamos a la URL http://localhost/wordpress, se abrira una página como esta:</p>
<p style="text-align: justify;"><a href="http://farm4.static.flickr.com/3634/3642347349_65782e3646.jpg?v=0" target="_blank"><img src="http://farm4.static.flickr.com/3634/3642347349_65782e3646.jpg?v=0" alt="" width="265" height="73" /><br />
</a></p>
<p style="text-align: justify;"><em>Click para agrandar</em></p>
<p style="text-align: justify;">7.- Presionamos en Crear un archivo de configuración.</p>
<p style="text-align: justify;">8.- Pasamos a otra ventana de Bienvenida e indicaciones, click en &#8220;vamos alla&#8221;, llegaremos a la siguiente ventana:</p>
<p style="text-align: justify;"><a href="http://farm4.static.flickr.com/3416/3642347439_113ff93c39.jpg?v=0" target="_blank"><img src="http://farm4.static.flickr.com/3416/3642347439_113ff93c39.jpg?v=0" alt="" width="286" height="154" /></a></p>
<p style="text-align: justify;"><em>Click para agrandar</em></p>
<p style="text-align: justify;">9,. Llenamos los datos que nos piden:<br />
<strong>Nombre de Base datos: </strong>Ponemos el nombre de la base de datos que creamos al principio, en este caso &#8220;Wordpress&#8221;<br />
<strong>Nombre de Usuario:</strong> Usamos el que viene por defecto en Xampp &#8220;Root&#8221;<br />
<strong>Contraseña: </strong>Lo dejamos en blanco, ya que el usuario &#8220;Root&#8221;, por defecto no tiene contraseña<br />
<strong>Host de la base de datos:</strong> Necesariamente &#8220;Localhost&#8221;<br />
<strong>Prefijo de las tablas: </strong>Todas las tablas que creen en esa base de datos tendran el prefijo que pongan acá, por ejemplo si crean la tabla &#8220;nombre&#8221; se llamara wp_nombre, tambien recomiendo el prefijo &#8220;wp_&#8221;.</p>
<p style="text-align: justify;">Luego de completar los datos, click en &#8220;Continuar&#8221;</p>
<p style="text-align: justify;">10.- Pasamos a otra ventana donde nos da un mensaje de aprobación, click en &#8220;Hacer la instalacion&#8221;</p>
<p style="text-align: justify;">11.- Llegamos ahora a una página como esta:</p>
<p style="text-align: justify;"><a href="http://farm4.static.flickr.com/3405/3642347509_0b9eb562e2.jpg?v=0" target="_blank"><img src="http://farm4.static.flickr.com/3405/3642347509_0b9eb562e2.jpg?v=0" alt="" width="262" height="115" /></a></p>
<p style="text-align: justify;"><em>Click para agrandar</em></p>
<p style="text-align: justify;">Llenamos los datos y click en &#8220;instalar wordpress&#8221;</p>
<p style="text-align: justify;">12.- Hecho esto llegamos a una página donde nos dan nuestro usuario y contraseña para entrar al panel de wordpress, anotenla en alguna parte. Anotada la contraseña, click en &#8220;Iniciar Sesión&#8221;.</p>
<p style="text-align: justify;">13.- Cuando hayan hecho click, llegarán a su Panel de Wordpress y ya puede empezar a trabjar sobre su blog, para ir a su blog, deben nuevamente ir a la direccion http://localhost/wordpress</p>
<p style="text-align: justify;">Y con esto ya tienen Wordpress instalado en su PC.</p>
<p style="text-align: justify;">Cualquier duda, dejen su comentario.</p>
<p style="text-align: justify;"><img src="http://farm4.static.flickr.com/3043/3056524059_52d616c96c.jpg?v=0" alt="" width="400" height="314" /></p>
<p style="text-align: justify;">Por ahora,</p>
<p style="text-align: justify;">Me despido.</p>
<p style="text-align: center;"><strong>Staff Comolohago.cl</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2010/02/14/como-instalar-wordpress-en-localhost/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CLH Express: Wordpress Móvil, Directorios vacíos, Firefox, mapas de imágenes y optimización en MySQL</title>
		<link>http://www.comolohago.cl/2009/10/29/clh-express-wordpress-movil-eliminar-directorios-vacios-trucos-de-firefox-mapas-de-imagenes-y-optimizacion-de-tablas-en-mysql/</link>
		<comments>http://www.comolohago.cl/2009/10/29/clh-express-wordpress-movil-eliminar-directorios-vacios-trucos-de-firefox-mapas-de-imagenes-y-optimizacion-de-tablas-en-mysql/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 03:08:05 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[CLH Express]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[directorios vacios]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mapas de imagenes]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=2319</guid>
		<description><![CDATA[
El buzón oficial de peticiones de Cómo Lo Hago se llena día a día con una serie de inquietudes que Uds., los usuarios, plantean al equipo con el fin de obtener alguna solución y/o respuesta. Si bien por la gran cantidad de ellas (y nuestro propio plan editorial de publicaciones), no nos es posible dar [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="aligncenter" src="http://farm3.static.flickr.com/2557/4057114146_02de447db2.jpg" alt="" width="400" height="202" /></p>
<p style="text-align: justify;">El <a href="http://www.comolohago.cl/peticiones/" target="_blank">buzón oficial de peticiones</a> de Cómo Lo Hago se llena día a día con una serie de inquietudes que Uds., los usuarios, plantean al equipo con el fin de obtener alguna solución y/o respuesta. Si bien por la gran cantidad de ellas <em>(y nuestro propio plan editorial de publicaciones)</em>, no nos es posible dar respuesta a todas rápidamente, hay una serie de preguntas que muchas veces no alcanzan para ser consideradas para publicar como tutorial por si solas, ya que son inquietudes que pueden ser resueltas con algún tip o un par de líneas de explicación.</p>
<p style="text-align: justify;">A raíz de esto, hoy damos inicio a una nueva sección llamada <strong>CLH Express</strong> donde buscaremos reunir todas aquellas pequeñas inquietudes que a su vez tengan simples y pequeñas soluciones y publicarlas en un pequeño compilado, con el fin de que ninguna pregunta quede sin respuesta y podamos brindar ayuda a todos quienes requieran.</p>
<p style="text-align: justify;">Así que inauguramos oficialmente <em>(sin corte de cinta, ya que no hay presupuesto)</em> y esperamos que sea de utilidad para todos.</p>
<p style="text-align: justify;"><span id="more-2319"></span></p>
<p style="text-align: justify;">En el CLH Express de hoy:</p>
<ol>
<li>Cómo implementar una versión móvil de Wordpress.</li>
<li>Cómo eliminar directorios vacíos.</li>
<li>Cómo deshabilitar la asistencia del historial en la barra de direcciones de Firefox.</li>
<li>Cómo optimizar una tabla en MySQL.</li>
<li>Cómo crear mapas de imágenes.</li>
</ol>
<p>Vamos, ¡manos a la obra!</p>
<h2 style="text-align: justify;">1.- Cómo implementar una versión móvil de Wordpress</h2>
<p style="text-align: justify;">Hoy en día es vital ofrecer la posibilidad a los visitantes de un sitio para poder visualizar los contenidos desde distintos dispositivos móviles como celulares y/o consolas como la PSP. Debido al gran alcance que las conexiones de Internet móvil han tenido, especialmente durante el último año, es común ver hoy en día a gente navegando a través de sus dispositivos en el transporte público, en la sala de espera de un hospital o en el mismo supermercado.</p>
<p style="text-align: justify;">Si nosotros, como administradores de un sitio, no somos capaces de adaptar nuestro contenido para que sea visualizado de forma apta en estos equipos, le proporcionaremos a los usuarios una experiencia bastante desagradable en términos de accesibilidad y usabilidad, más aún si nuestro sitio es un blog que proporcione artículos con grandes porciones de texto e imágenes.</p>
<p style="text-align: justify;">Para el caso de Wordpress, la solución es bastante sencilla. Con solo la instalación y activación de un plugin podemos hacer esta adaptación de forma casi automática, sin preocuparnos de programar ni editar nada en el sitio propiamente tal.</p>
<p style="text-align: justify;">El plugin del que hablamos es <strong>MobilePress</strong> y pueden conseguirlo en el <a href="http://downloads.wordpress.org/plugin/mobilepress.1.0.4.zip" target="_blank">siguiente enlace</a>.</p>
<p style="text-align: justify;">Para instalar, el proceso clásico de los plugins de Wordpress, es decir:</p>
<ol>
<li>Subir los contenidos de la descarga a su directorio de plugins en Wordpress <em>(wp-content/plugins)</em></li>
<li>Ir al menú de plugins en su tablero.</li>
<li>Activar el plugin.</li>
</ol>
<p style="text-align: justify;">Adicionalmente en el tablero se añadirá un enlace a las opciones, que pueden editar, aunque solo activándolo ya creará una versión móvil del sitio para quienes deseen verlo así. Las opciones hablan sobre si queremos darle algún título en especial a esta versión o si tratar ciertos tipos de dispositivos como navegadores Web.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3518/4056576437_2ff518bd2b_o.png" alt="" width="500" height="207" /><br />
<em>Panel de opciones MobilePress</em></p>
<p style="text-align: justify;">Este es el plugin que utilizamos para la versión móvil de CLH, y lo recomendamos por su simpleza de implementación y buenos resultados.</p>
<h2 style="text-align: justify;">2.- Cómo eliminar directorios vacíos</h2>
<p style="text-align: justify;">Debo reconocer que tengo una cierta manía por mantener un estricto orden en mi equipo cuando se trata de directorios y archivos. Por lo general en mi escritorio no mantengo más de un par de íconos e intento tener una cierta estructura para almacenar mis archivos con el fin de poder ubicarlos con mayor facilidad cuando los necesite <em>(principal razón de porque el PC de <a href="http://twitter.com/vertig0" target="_blank">Jorge Nitales</a> me provoca un headshot instantáneo cada vez que lo &#8220;intento&#8221; ocupar)</em>.</p>
<p style="text-align: justify;">Sin embargo, uno de los grandes problemas es cuando al realizar la desinstalación de aplicaciones o bien la eliminación automática de algunos archivos es que permanecen una serie de directorios vacíos que solo terminan ocupando espacio y afectando las indexaciones que pueda tener nuestro equipo para la búsqueda de archivos. Gracias a un tip proporcionado por nuestro buen <a href="http://twitter.com/cbunster" target="_blank">Topher</a>, maestro entrenador de búsqueda de software, hemos descubierto una aplicación que nos puede ayudar a eliminar este problema.</p>
<p style="text-align: justify;">Hablamos de <strong>Remove Empty Directories</strong>, el cual pueden descargarlo del <a href="http://downloads.sourceforge.net/rem-empty-dir/red-v2.1-setup.exe" target="_blank">siguiente enlace</a>. Es gratuito, liviano y bastante fácil de utilizar. Sólo debemos descargar, instalar, abrir y presionar <strong>Scan</strong> para que busque los directorios. Una vez que los encuentre los marcará en rojo y seleccionamos <strong>Delete Folders.</strong> Como en todos estos tipos de aplicaciones, es recomendable volver a escanear una vez que hemos eliminado, en caso de que se haya pasado alguno.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm3.static.flickr.com/2718/4057335806_9a6580f5dc_o.png" alt="" width="500" height="437" /><br />
<em>Imagen cortesía del <a href="http://www.jonasjohn.de/lab/red.htm" target="_blank">sitio de su creador</a></em></p>
<p style="text-align: justify;">
<h2 style="text-align: justify;">3.- Cómo deshabilitar la asistencia del historial en la barra de direcciones de Firefox</h2>
<p style="text-align: justify;">Ok, historia real. Hace una semana, estábamos con Topher trabajando en los cuarteles generales de CLH en algunos desarrollos, cuando recordé un video de l<a href="http://www.youtube.com/watch?v=CujOfGo3S58" target="_blank">a mejor banda del mundo</a> que quería mostrarle, así que le pedí que se acercara a mi equipo. Mientras escribía las letras de la URL, ví como en la barra de direcciones comenzaban a aparecer una serie de sitios y búsquedas que había abierto con antelación. Con desesperación pude ver como mis visitas diarias a los videos de Jonas Brothers y Hannah Montana aparecían ante las incesantes burlas de Topher, que hasta la fecha había hecho caso omiso a mi tremenda admiración por tamaños artistas.</p>
<p style="text-align: justify;">Más real que lo anterior es la cierta molestia que puede provocarles a algunos usuarios <em>(me excluyo)</em> la aparición de estas <em>&#8220;sugerencias&#8221;</em> en la barra de direcciones de Firefox a medida que escribimos una URL, basadas en búsquedas y enlaces que hayamos visitado anteriormente. Si bien en lo personal lo considero una buena funcionalidad para recordar algunos sitios que he visitado de direcciones algo complejas, hay muchos quienes lo consideran un directo ataque a la privacidad de un usuario, especialmente cuando el equipo que utilizan es compartido.</p>
<p style="text-align: justify;">Pues bien, la solución a aquello es bastante sencilla. Sólo debemos ir, dentro de Firefox a <strong>Herramientas &gt; Opciones &gt; Privacidad</strong> y cambiamos la opción que les mostramos en la siguiente imagen a <strong>Nada</strong>:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm3.static.flickr.com/2662/4056698623_fcdc90d07a_o.png" alt="" width="494" height="446" /></p>
<p style="text-align: justify;"><strong>Nota</strong>: Este truco solo funciona en versiones de Firefox 3.5 y superiores.</p>
<h2 style="text-align: justify;">4.- Cómo optimizar una tabla en MySQL</h2>
<p style="text-align: justify;">¿Optimizar?, ¿Una tabla?, ¿en MySQL?. Partamos por explicar un poco de que se trata.</p>
<p style="text-align: justify;">Cuando eliminamos una instancia o fila en una tabla de una base de datos, el dato se saca de ahí, pero sigue ocupando el espacio <em>&#8220;físico&#8221;</em> dentro de la tabla, con una fila con valores en blanco o nulos, y se mantienen en una lista enlazada la cual es referenciada por los distintos índices que la tabla pueda tener. Lo mismo sucede cuando estamos trabajando con campos de longitud variable <em>(como por ejemplo un VARCHAR)</em>, en el cual si originalmente un registro ocupaba X espacio y ahora utiliza X-menos algo, se seguirá contabilizando ese &#8216;X&#8217; como el espacio utilizado, aún cuando el resto este en blanco.</p>
<p style="text-align: justify;">La solución para esto es optimizar la tabla mediante una sencilla consulta, la cual se encarga de reacomodar las filas y campos para aprovechar de mejor forma el espacio físico utilizado por la tabla, muy similar a los procesos de defragmentación de disco.</p>
<p style="text-align: justify;">Para optimizar, solo debemos ejecutar la siguiente consulta:</p>
<blockquote>
<p style="text-align: justify;">OPTIMIZE TABLE nombre_de_la_tabla</p>
</blockquote>
<p style="text-align: justify;">Esta consulta funciona actualmente sobre implementaciones de MySQL que utilizan los motores MyISAM, InnoDB y BDB.</p>
<h2 style="text-align: justify;">5.- Cómo crear mapas de imágenes</h2>
<p style="text-align: justify;">A pesar de que este es un truco bastante antiguo en el diseño de sitios Web, hay muchos quienes desconocen su utilidad y como hacerlo, como por ejemplo varias consultas que nos llegaron al respecto.</p>
<blockquote>
<h2 style="text-align: justify;">¿Qué es un mapa de imagen?</h2>
<p style="text-align: justify;">Un mapa de imagen es la funcionalidad de poder enlazar distintos sectores de una imagen a distintos destinos. Su funcionamiento radica en crear <em>&#8220;zonas&#8221;</em> delimitadas por coordenadas de acuerdo al tamaño de la imagen <em>(en pixeles)</em> y asignar un enlace de destino a aquel sector.</p>
<h2 style="text-align: justify;">¿Para qué sirve?</h2>
<p style="text-align: justify;">Es extremadamente útil si queremos insertar una imagen en una página y enlazar distintos sectores a varios destinos, como por ejemplo insertar un menú en imagen y enlazar las distintas secciones del sitio.</p>
</blockquote>
<p style="text-align: justify;">Para realizar un mapa de imagen solo debemo insertar las etiquetas &lt;map&gt; en nuestro documento. A pesar de que podemos hacerlo en un editor de texto como bloc de notas, esto se vuelve complejo al intentar determinar los pixeles de la imagen correspondientes a cada coordenada, por lo que lo recomendable es utilizar un editor Web como Adobe Dreamweaver, el cual nos permite <em>&#8220;dibujar&#8221; </em>las zonas sobre la imagen y definir los enlaces, generando automáticamente el código.</p>
<p style="text-align: justify;">En Dreamweaver, una vez que hemos insertado una imagen en un documento, vamos al <strong>Inspector de propiedades</strong> que aparece en la parte inferior y vemos la sección de mapa, que nos muestra unas figuras geométricas. Seleccionamos la que más nos sirva y marcamos un espacio en la imagen con nuestro mouse, tal como si seleccionaramos un área:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm3.static.flickr.com/2523/4057486182_061a8ec4ac_o.png" alt="" width="500" height="250" /></p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm3.static.flickr.com/2597/4056747673_df29a6787f_o.png" alt="" width="500" height="292" /></p>
<p style="text-align: justify;">Y luego en la parte inferior, ingresamos el enlace que corresponde al área que acabamos de seleccionar <em>(recuerden eliminar el #, sino preguntenle a Topher que pasa <img src='http://www.comolohago.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</em></p>
<p style="text-align: justify;"><em><img class="aligncenter" src="http://farm3.static.flickr.com/2481/4057486274_9bd11b1ffb_o.png" alt="" width="500" height="170" /></em></p>
<p style="text-align: justify;">Y luego repetimos con cada área que queramos crear en la imagen. Así de simple.</p>
<p style="text-align: justify;">Y con esto damos por terminada la primera edición de CLH Express, en donde les traemos una serie de pequeñas soluciones a diversos problemas que Uds., los usuarios, nos planteen, cada una de estas como siempre:</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://farm4.static.flickr.com/3043/3056524059_ed7150e191_o.jpg" alt="" width="400" height="314" /></p>
<p style="text-align: justify;">Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.</p>
<p style="text-align: justify;">Esperamos que este CLH Express haya sido de utilidad para Uds.</p>
<p style="text-align: justify;">Muchas gracias por leer  y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2009/10/29/clh-express-wordpress-movil-eliminar-directorios-vacios-trucos-de-firefox-mapas-de-imagenes-y-optimizacion-de-tablas-en-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Cómo hacer una conexión a SQL Server con PHP</title>
		<link>http://www.comolohago.cl/2009/06/26/como-hacer-una-conexion-a-sql-server-con-php/</link>
		<comments>http://www.comolohago.cl/2009/06/26/como-hacer-una-conexion-a-sql-server-con-php/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:48:12 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://comolohago.cl.s69263.gridserver.com/?p=1001</guid>
		<description><![CDATA[
A pesar de que MySQL es el Sistema Gestor de Base de Datos por excelencia, y el más preferido,  al momento de desarrollar aplicaciones Web en PHP, en muchas ocasiones a los desarrolladores se les presenta la problemática de trabajar con otros SGBD, ya sea por un tema de recursos disponibles o bien por [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3014/3033062739_ff8b8e4a95.jpg?v=0" alt="" width="400" height="240" /></p>
<p style="text-align: justify;">A pesar de que MySQL es el Sistema Gestor de Base de Datos por excelencia, y el más preferido,  al momento de desarrollar aplicaciones Web en PHP, en muchas ocasiones a los desarrolladores se les presenta la problemática de trabajar con otros SGBD, ya sea por un tema de recursos disponibles o bien por requerimientos del usuario final.</p>
<p style="text-align: justify;">Cuando trabajamos con MySQL podemos notar una extrema simpleza en las funciones incluidas dentro del lenguaje que nos permiten desarrollar de forma rápida y simple. Lamentablemente para otros casos, como SQL Server, no es así, y es que a pesar de que PHP incluye funciones para realizar la conexión que en teoría deberían ser igual de simples, en la práctica muchas veces no es así.</p>
<p style="text-align: justify;">Hoy en CLH les traemos un sencillo tutorial en donde enseñaremos a realizar una conexión a una base de datos en SQL Server desde PHP para aquellos casos.</p>
<p style="text-align: justify;">Todo el detalle, como siempre, después del salto.</p>
<p style="text-align: justify;"><span id="more-1001"></span></p>
<h1 style="text-align: center;">Cómo hacer una conexión a SQL Server con PHP</h1>
<p style="text-align: justify;"><strong>Nota:</strong> Antes de comenzar, una anotación importante. El tutorial presenta el proceso de conexión de PHP a SQL Server trabajando con servidores Windows. Con servidores Linux el proceso se complica un poco, aunque estamos actualmente en proceso de crear una guía al respecto que esperamos poder presentar en el futuro cercano.</p>
<p style="text-align: justify;">Para la realización de este proceso probamos varios métodos, partiendo por la clásica función <strong><em>mssql_connect</em></strong>, la cual en más de una ocasión nos presentó problemas, por lo que investigando al respecto llegamos a la forma presentada a continuación, la cual hasta ahora nos ha presentado una efectividad del 100%, mediante el uso de una librería llamada ADOdb, la cual además de soportar SQL Server trabaja con una serie de otros SGBD como Oracle, MySQL, PostgreSQL, Access, etc.</p>
<p style="text-align: justify;">Como siempre, lo primero:</p>
<h2>Implementos necesarios:</h2>
<ol>
<li style="text-align: justify;">Un servidor <strong>Windows</strong> que soporte la ejecución de archivos PHP.</li>
<li style="text-align: justify;">Una base de datos SQL Server <em>(para este tutorial utilizamos SQL Server 2000, si, algo desactualizado, pero no hay problemas con versiones posteriores).</em></li>
<li style="text-align: justify;">La librería ADOdb, que puede ser descargada del <a href="http://adodb.sourceforge.net/#download" target="_blank">siguiente enlace</a>.</li>
<li style="text-align: justify;">Opcionalmente un editor Web <em>(en CLH utilizamos y recomendamos Adobe Dreamweaver, el cual pueden descargar desde el <a href="http://www.adobe.com/es/products/dreamweaver/" target="_blank">sitio de Adobe</a>).</em></li>
</ol>
<p style="text-align: justify;"><strong>Nota 2: </strong>La versión a descargar por defecto de ADOdb trabaja con PHP 5.0 o superior. En caso de que en su servidor tengan una versión anterior, pueden descargar <a href="http://sourceforge.net/project/showfiles.php?group_id=42718&amp;package_id=34890" target="_blank">esta versión de la librería</a> que trabaja con las versiones de PHP de la 4.1 a la 5.2</p>
<p>Con todo eso claro, manos a la obra:</p>
<h2>Procedimiento:</h2>
<p style="text-align: justify;">1.- Lo primero que haremos es, una vez descargada la librería ADOdb, descomprimirla, idealmente en el mismo directorio de la aplicación que estamos desarrollando, con lo que obtendremos un directorio <strong>adodb</strong> el cual contiene una serie de subdirectorios y archivos dentro de el.</p>
<p style="text-align: justify;">2.- A continuación, abrimos en nuestro editor Web el archivo PHP en el cual necesitamos establecer una conexión a la BD en SQL Server.</p>
<p style="text-align: justify;">3.- Una vez que tengamos todo listo, partimos por hacer un include al archivo que contiene todas las funciones utilizadas por las clases de las distintas BD que soporta esta librería:</p>
<blockquote>
<p style="text-align: justify;">include(&#8220;adodb/adodb.inc.php&#8221;);</p>
</blockquote>
<p style="text-align: justify;">4.- Luego, crearemos un objeto al cual llamaremos <strong>conexion</strong> en el cual definiremos una conexión a SQL Server mediante ODBC:</p>
<blockquote>
<p style="text-align: justify;">$conexion = &amp;ADONewConnection(&#8216;odbc_mssql&#8217;);</p>
</blockquote>
<p style="text-align: justify;">5.- A continuación, debemos definir mediante una cadena, un DSN o data source name <em>(nombre de fuente de datos)</em> equivalente a cuando hacemos una conexión normal a una BD SQL Server, para esto es importante que conozcamos la siguiente información:</p>
<ul>
<li style="text-align: justify;">Server: Dirección del servidor de BD.</li>
<li style="text-align: justify;">Database: Base de datos donde trabajaremos.</li>
</ul>
<p>Con eso en consideración, definimos nuestro DSN:</p>
<blockquote>
<p style="text-align: justify;">$datos = &#8220;Driver={ SQL Server };Server=URL-del-servidor;Database=Nombre-de-la-BD;&#8221;;</p>
</blockquote>
<p style="text-align: justify;">6.- Y luego hacemos la conexión, a partir del objeto que creamos en el paso 4, el cual enviará como parámetros nuestro DSN <em>(creado en el paso anterior)</em>, el nombre de usuario y la contraseña de acceso a la BD. En caso de no contar con esta información, deberemos ponernos en contacto con el administrador de la plataforma para solicitar los datos:</p>
<blockquote>
<p style="text-align: justify;">$conexion -&gt; Connect($datos, &#8216;usuario&#8217;, &#8216;contraseña&#8217;);</p>
</blockquote>
<p style="text-align: justify;">Con eso habremos establecido una conexión a la BD y podremos operar sobre ella sin problemas.</p>
<p style="text-align: justify;">Veamos como ejemplo hacer una consulta y recuperar algunos datos. Consideremos una tabla  llamada persona que tiene 3 campos: nombre, edad, telefono y queremos recuperar todos los registros y mostrarlos por pantalla <em>(comentarios en negrita, cursiva y entre /* y */):</em></p>
<blockquote>
<p style="text-align: justify;">include(&#8220;adodb/adodb.inc.php&#8221;);<br />
<em><strong>/* Incluimos el archivo de funciones */</strong></em></p>
<p style="text-align: justify;">$conexion = &amp;ADONewConnection(odbc_mssql);<br />
<em><strong>/* Creamos un objeto de conexión a SQL Server */</strong></em></p>
<p style="text-align: justify;">$datos = &#8220;Driver={SQL Server};Server=localhost;Database=CLH;&#8221;;<br />
<em><strong>/* Definimos nuestro DSN */</strong></em></p>
<p style="text-align: justify;">$conexion -&gt; Connect($datos,&#8217;clh&#8217;,'clh&#8217;);<br />
<em><strong>/* Hacemos la conexión con los parámetros correspondientes */</strong></em></p>
<p style="text-align: justify;">$resultado -&gt; &amp;$conexion-&gt;Execute(&#8220;select * from persona&#8221;);<br />
<em><strong>/* Ejecutamos la consulta para recuperar los registros */</strong></em></p>
<p style="text-align: justify;">if(!$resultado)<br />
print $conexion -&gt; ErrorMsg( );<br />
<em><strong>/* Declaramos un if en caso de que la consulta no se haya ejecutado bien, para que nos muestre el error */</strong></em></p>
<p style="text-align: justify;">else<br />
{<br />
while(!$resultado -&gt; EOF)<br />
{<br />
<em><strong>/* Ejecutamos un ciclo de tipo While que realizará las operaciones hasta que el resultado de la consulta (los registros rescatados) llegue al EOF o End of File (final de los registros recuperados) */<br />
</strong></em><br />
print $resultado -&gt; fields[0].&#8221;&lt;br&gt;&#8221;;<br />
print $resultado -&gt; fields[1].&#8221;&lt;br&gt;&#8221;;<br />
print $resultado -&gt; fields[2].&#8221;&lt;br&gt;&#8221;;<br />
<em><strong>/* Imprimimos el resultado de la consulta. Al rescatar los registros, cada campo se agrega a un arreglo llamado fields, en el que se irán situando los campos en el orden que se rescataron */<br />
</strong></em><br />
$resultado -&gt; MoveNext( );<br />
<em><strong>/* Avanzamos a la fila siguiente */</strong></em><br />
}<br />
}<br />
$resultado -&gt; Close( );<br />
$conexion -&gt; Close( );<br />
<em><strong>/* Cerramos los objetos, este paso es opcional, pero optimiza nuestro código */</strong></em></p></blockquote>
<p style="text-align: justify;">Y así de simple hemos realizado una conexión desde PHP a SQL Server, además de rescatar registros y mostrarlos por pantalla. Tan sólo con unas líneas de código hemos podido completar este procedimiento de manera rápida y sencilla.</p>
<p style="text-align: justify;">Recuerden que como siempre este tutorial ha sido:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3043/3056524059_52d616c96c.jpg?v=0" alt="" width="400" height="314" /></p>
<p style="text-align: justify;">Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.</p>
<p style="text-align: justify;">Esperamos que este tutorial haya sido de utilidad para Uds.</p>
<p style="text-align: justify;">Muchas gracias por leer y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2009/06/26/como-hacer-una-conexion-a-sql-server-con-php/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Cómo importar a MySQL desde Excel</title>
		<link>http://www.comolohago.cl/2009/05/24/como-importar-a-mysql-desde-excel/</link>
		<comments>http://www.comolohago.cl/2009/05/24/como-importar-a-mysql-desde-excel/#comments</comments>
		<pubDate>Mon, 25 May 2009 00:46:31 +0000</pubDate>
		<dc:creator>Xabadu</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=430</guid>
		<description><![CDATA[
Hace algunos días, por una asignación, me vi frente al problema de traspasar algunos cientos de registros desde una planilla en Excel a una base de datos MySQL.
Luego de darme cuenta que el número de registros era bastante alto, descarté la posibilidad de hacer el traspaso de forma manual y me ví en la búsqueda [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3572/3560540139_23a824314a.jpg?v=0" alt="" width="400" height="115" /></p>
<p style="text-align: justify;">Hace algunos días, por una asignación, me vi frente al problema de traspasar algunos cientos de registros desde una planilla en Excel a una base de datos MySQL.</p>
<p style="text-align: justify;">Luego de darme cuenta que el número de registros era bastante alto, descarté la posibilidad de hacer el traspaso de forma manual y me ví en la búsqueda de alguna forma que pudiera automatizar el proceso, sin necesidad de programar o utilizar algún script intermedio.</p>
<p style="text-align: justify;">Fueron varias las soluciones que aparecieron, unas más sencillas que otras, y con eso en cuenta, hoy les traemos un sencillo tutorial en donde les enseñaremos a realizar este proceso en solo algunos minutos.</p>
<p style="text-align: justify;">El detalle, como siempre, después del salto.</p>
<p style="text-align: justify;"><span id="more-430"></span></p>
<h1 style="text-align: center;">Cómo importar a MySQL desde Excel</h1>
<p style="text-align: justify;">Como mencionábamos en al introducción, existen varios métodos para realizar este proceso. Desde realizar una exportación de la planilla excel a formato CSV y luego importarlo a MySQL hasta varias alternativas de software. Luego de probar todas estas, nos dimos cuenta que la forma menos engorrosa y más rápida es con el software que presentamos a continuación.</p>
<p style="text-align: justify;">Así que como siempre, lo primero:</p>
<h2>Implementos necesarios:</h2>
<ol>
<li style="text-align: justify;">El software Navicat for MySQL, que puede ser descargado desde su <a href="http://download.navicat.com/download/navicat8_mysql_en.exe" target="_blank">sitio Web Oficial</a>.</li>
<li style="text-align: justify;">Una planilla en Excel con datos, ordenados por columna.</li>
<li style="text-align: justify;">Una base de datos en MySQL.</li>
</ol>
<p>Con todo eso listo, vamos, manos a la obra:</p>
<h2>Procedimiento:</h2>
<p style="text-align: justify;">1.- Lo primero que debemos hacer, es asegurarnos de igualar los formatos en que se guardarán los datos en MySQL con los que tiene la planilla de Excel, es decir, debemos crear nuestra tabla de forma que contenga el mismo número de campos <em>(y tipo de datos)</em> que los que existen en la plantilla y que luego almacenaremos. Para este caso, creamos una tabla que contiene campos correspondiente a &#8216;Nombre de Lugar&#8217; , &#8216;Nombre de responsable&#8217;, &#8216;Teléfono&#8217;, &#8216;E-mail&#8217;, ya que esos son los datos que tenemos en nuestro Excel.</p>
<p style="text-align: justify;">2.- Una vez que nuestra tabla está lista, abrimos nuestra planilla de Excel y nos aseguramos de quitar cualquier formato molesto que haya en las celdas, con el fin de no entorpecer el proceso, es decir, eliminamos colores, formatos, etc.</p>
<p style="text-align: justify;">3.- A continuación, instalamos el software Navicat for MySQL que hemos descargado desde el sitio Web oficial y procedemos a instalarlo. El proceso es bastante estándar, por lo que no entraremos en detalle.</p>
<p style="text-align: justify;">4.- Una vez instalado, lo ejecutamos y veremos su interfaz principal:</p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2456/3561443852_0c800da12d.jpg?v=0" alt="" width="400" height="309" /></p>
<p style="text-align: justify;">5.- Ahí nos dirijimos al botón <strong>Connection</strong> para configurar nuestra conexión a la base de datos:</p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2244/3561444152_4bfe601292.jpg?v=0" alt="" width="400" height="138" /></p>
<p style="text-align: justify;">Y se nos presentará una ventana como la siguiente:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3306/3561444400_d9bf6b47dd.jpg?v=0" alt="" width="400" height="423" /></p>
<p style="text-align: justify;">Aquí configuramos los siguientes datos:</p>
<ul>
<li style="text-align: justify;"><strong>Connection Name:</strong> El nombre que le daremos a la conexión, puede ser cualquiera.</li>
<li style="text-align: justify;"><strong>Host name/IP Address:</strong> La dirección del servidor de BD, si está en el mismo equipo donde estamos trabajando será localhost, de lo contrario debemos ingresar el dato correspondiente.</li>
<li style="text-align: justify;"><strong>Port:</strong> MySQL por defecto utiliza el puerto 3306 para operar, por lo que probablemente no deberemos alterar este dato. Si tienen dudas, pongánse en contacto con su proveedor de servicios.</li>
<li style="text-align: justify;"><strong>User name:</strong> El nombre de usuario con el que ingresamos a la BD.</li>
<li style="text-align: justify;"><strong>Password:</strong> La contraseña correspondiente a ese nombre de usuario.</li>
</ul>
<p style="text-align: justify;">Hacemos click en <strong>Ok</strong> y podremos ver que se ha creado una nueva conexión en la interfaz principal.</p>
<p style="text-align: justify;">6.- Sobre esa conexión hacemos click con el botón derecho y seleccionamos <strong>Open Connection</strong>:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3634/3560627713_4c4ea2b8a0.jpg?v=0" alt="" width="400" height="500" /></p>
<p style="text-align: justify;">Si los datos estaban bien, se conectará a la BD y nos desplegará las BD que tengamos creadas:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3229/3560627893_b4564374fe.jpg?v=0" alt="" width="400" height="268" /></p>
<p style="text-align: justify;">7.- Hacemos doble click sobre nuestra BD y se abrirá, desplegando todos sus elementos. Nos dirijimos a la sección <strong>Tables</strong> y doble click nuevamente para mostrarnos las tablas que tenemos creadas. Seleccionamos la que queremos rellenar y hacemos click con el botón derecho, seleccionando la opción <strong>Import Wizard:</strong></p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2475/3560628221_36ab0dc0ef.jpg?v=0" alt="" width="400" height="445" /></p>
<p style="text-align: justify;">Con eso se abrirá el Asistente de importación, el cual consta de 8 pasos como veremos en las siguientes imágenes:</p>
<p style="text-align: justify;">8.- Primero debemos partir por seleccionar el formato del archivo desde donde importaremos. Hay varias posibilidades, pero debemos seleccionar <strong>Excel File (*.xls):</strong></p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3569/3561445748_57786b518a.jpg?v=0" alt="" width="400" height="358" /></p>
<p style="text-align: justify;">Y click en <strong>Next.</strong></p>
<p style="text-align: justify;">9.- Luego debemos seleccionar el archivo desde donde importaremos. En caso de que la planilla tenga más de una hoja, debemos marcar la que corresponde a nuestros datos:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3659/3561445844_984c4dde29.jpg?v=0" alt="" width="400" height="354" /></p>
<p style="text-align: justify;">10.- A continuación, podemos indicarle al programa que fila tomar como primera y cual como última, de esta forma, si tenemos títulos en las columnas, podemos configurar para que se las salte:</p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2152/3561445988_6b81f67698.jpg?v=0" alt="" width="400" height="353" /></p>
<p style="text-align: justify;">11.- Luego habrá un cuadro de confirmación para ver el origen y destino de los datos, hacemos click en <strong>Next:</strong></p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3606/3561446182_710a33f00f.jpg?v=0" alt="" width="400" height="356" /></p>
<p style="text-align: justify;">12.- En la siguiente sección, cruzaremos los datos, asignando a cada campo de la tabla de la BD el correspondiente de la planilla Excel. Dependiendo de esta asignación se realizará la importación en las filas siguientes:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3658/3561446504_b3f088237b.jpg?v=0" alt="" width="393" height="347" /></p>
<p style="text-align: justify;">13.- Por último debemos seleccionar la última opción. Si la importación debe añadir los datos al final de los existentes o si debe borrar los existentes y añadir los nuevos. Como nuestra tabla esta vacía, seleccionamos la primera opción:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3395/3560629615_03ed2ba983.jpg?v=0" alt="" width="400" height="360" /></p>
<p style="text-align: justify;">14.- Y ahora llegamos a la pantalla final, donde solo debemos presionar en <strong>Start</strong> para comenzar la importación:</p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2484/3561447316_218de35d8f.jpg?v=0" alt="" width="400" height="354" /></p>
<p style="text-align: justify;">El proceso demora algunos instantes dependiendo del número de registros y de si nuestra BD es local o está en algún servidor remoto. Al final de la importación se nos mostrará un cuadro resumen indicandonos cuantos datos se pudieron insertar y si hubo errores.</p>
<p style="text-align: justify;">Y así de simple hemos hecho una importación a una tabla en MySQL desde una planilla Excel en solo algunos minutos.</p>
<p style="text-align: justify;">Como consejo final, les recomendamos observar a fondo este Software, ya que presenta una serie de atractivas funcionalidades para la administración de BD, como la creación de procedimientos almacenados, optimización de tablas y mucho más. Es sin duda una herramienta muy potente.</p>
<p style="text-align: justify;">Como siempre, recuerden que este tutorial ha sido:</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3043/3056524059_52d616c96c.jpg?v=0" alt="" width="400" height="314" /></p>
<p style="text-align: justify;">Cualquier duda o comentario que puedan tener, los invitamos a dejar unas líneas en el área habilitada a continuación.</p>
<p style="text-align: justify;">Esperamos que este tutorial haya sido de utilidad para Uds.</p>
<p style="text-align: justify;">Muchas gracias por leer y será hasta una próxima oportunidad.</p>
<p style="text-align: center;"><strong>Staff CLH</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2009/05/24/como-importar-a-mysql-desde-excel/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Como pasar una base de datos de Access a Mysql</title>
		<link>http://www.comolohago.cl/2009/05/04/como-pasar-una-base-de-datos-de-access-a-mysql/</link>
		<comments>http://www.comolohago.cl/2009/05/04/como-pasar-una-base-de-datos-de-access-a-mysql/#comments</comments>
		<pubDate>Tue, 05 May 2009 02:19:58 +0000</pubDate>
		<dc:creator>Jorge Nitales</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[migrar]]></category>
		<category><![CDATA[migrar de acces a Mysql]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pasar de Access a Mysql]]></category>

		<guid isPermaLink="false">http://www.comolohago.cl/?p=410</guid>
		<description><![CDATA[
Quizás tienen una base de datos en Access y por esas cosas de la vida, ya no les sirve o simplemente la quieren cambiar y una buena opción para migrar es Mysql. Pero ¿¡Tengo que traspasar manualmente todas las tablas y todos los datos?!, para uno o 2 tablas esta bien, para 100 con cada [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3317/3502304661_0748871b03.jpg?v=0" alt="" width="400" height="233" /></p>
<p style="TEXT-ALIGN: justify">Quizás tienen una base de datos en Access y por esas cosas de la vida, ya no les sirve o simplemente la quieren cambiar y una buena opción para migrar es Mysql. Pero ¿¡Tengo que traspasar manualmente todas las tablas y todos los datos?!, para uno o 2 tablas esta bien, para 100 con cada una con muchos datos, pues no y como no queremos que gasten miles de millones de horas en hacer ese trabajo, aca les enseñaremos a migrar (pasar) su base de datos en Access a Mysql de manera directa.</p>
<p style="TEXT-ALIGN: justify">Para ver Como lo Hago, vamos despues del salto.</p>
<p><span id="more-410"></span></p>
<h1>Como pasar una base de datos de Access a Mysql</h1>
<h3><span style="color: #ff0000;">¿Que necesitamos?</span></h3>
<p style="TEXT-ALIGN: justify"><span style="color: #000000;">- MySql Connecto ODBC, que sirve para crear la conexión entre ambas bases de datos, lo puede descargar <a href="http://dev.mysql.com/get/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.5-win32.msi/from/http://mirror.services.wisc.edu/mysql/" target="_blank">aquí</a>.<br />
- Microsoft Access (que es donde tienen su base de datos original)</span></p>
<h3><span style="color: #ff0000;">¿Como Lo Hago?</span></h3>
<p style="TEXT-ALIGN: justify"><span style="color: #000000;">1.- Después de realizar la descarga, instalamos la aplicación, recomiendo seleccionar la opción &#8220;Typical&#8221;.</span></p>
<p style="TEXT-ALIGN: justify">2.- Terminada la instalación vamos al Panel de Control-&gt;Herramientas Administrativas-&gt;Origenes de Datos(ODBC) y aparecerá una ventana como esta:</p>
<p><img src="http://farm4.static.flickr.com/3386/3502304611_978c50e4cc.jpg?v=0" alt="" width="400" height="346" /></p>
<p>3.- Vamos a la pestaña &#8220;DSN de archivo&#8221; (como se ve en la imagen anterior) y una vez aquí, click en agregar, llegaremos a la siguiente ventana:</p>
<p><img src="http://farm4.static.flickr.com/3348/3503114986_1851fe1996.jpg?v=0" alt="" width="400" height="294" /></p>
<p style="TEXT-ALIGN: justify">4.- En la lista que tenemos, seleccionamos &#8220;MySQL ODBC 5.1 Driver&#8221; y click en siguiente. Aparecerá una ventana para escribir la ruta donde queremos guardar nuestra conexión, le damos a examinar y por defecto estara en una carpeta llamada &#8220;Data Source&#8221;, ponemos un nombre y la guardamos en esa carpeta como se ve en la siguiente imagen:</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3546/3502304457_4be29175c0.jpg?v=0" alt="" width="400" height="292" /></p>
<p style="TEXT-ALIGN: justify">5.- Al presionar guardar, volveremos a la ventana donde pedía escribir la ruta, pero esta vez con al ruta escrita, click sigueiente y llegamos a una ventana de confirmación, donde damos click en finalizar. Con esto volveremos a la ventana donde entramos para agregar la conexión, esta vez con la conexion ya creada.</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3589/3503114754_656207ba66.jpg?v=0" alt="" width="400" height="346" /></p>
<p style="TEXT-ALIGN: justify">6.- Seleccionamos la conexión y le damos click en Configurar, aparecera una vetana como esta:</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3619/3502304393_df3c67d774.jpg?v=0" alt="" width="400" height="383" /></p>
<p style="TEXT-ALIGN: justify">7.- Llenamos los datos que nos piden:</p>
<p style="TEXT-ALIGN: justify"><span style="text-decoration: underline;">Server:</span> Es la dirección donde se encuentra su base de datos, en ese caso, como estamos usando un servidor local, la direccion es &#8220;Localhost&#8221;.<br />
<span style="text-decoration: underline;">User:</span> El usuario que nos permite el acceso a la base de datos.<br />
<span style="text-decoration: underline;">Password:</span> La contraseña del Usuario.<br />
<span style="text-decoration: underline;">Database:</span> En este lugar debemos escribir el nombre de la base de datos a la que nos vamos a conectar, en este caso la base se llama &#8220;Demo&#8221;.</p>
<p style="TEXT-ALIGN: justify">8.- Para confirmar que todo este correcto, click en Test, si todo esta bien aparecera una ventana como esta:</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3634/3503114796_4be8d04328.jpg?v=0" alt="" width="128" height="100" /></p>
<p style="TEXT-ALIGN: justify">9.- Con esto ya tenemos creada nuestra conexión, ahora vamos a usarla. Entramos a nuestra base de datos en Access y vamos al menu Base de Datos, abajo apareceran las tablas de su base de datos, Click derecho en la primera y vamos a Exportar-&gt;Base de Datos OBDC.</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3308/3503114696_8ccbaa8a71.jpg?v=0" alt="" width="400" height="242" /></p>
<p style="TEXT-ALIGN: justify">10.- Al hacer esto, nos preguntara el nombre con el que guardaremos la tabla en MySQL, es recomendable mantener el mismo:</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3601/3503114620_da4f2f7889.jpg?v=0" alt="" width="330" height="128" /></p>
<p style="TEXT-ALIGN: justify">En esta ventana se le da el nombre a la tabla, con este nombre se guardara en MySQL (que se llame igual que la base de datos es solo coincidencia). Click en Aceptar.</p>
<p style="TEXT-ALIGN: justify">11.- Nos llevara a una ventana donde debemos escoger que conexion usaremos:</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3627/3503114584_50b7f38a0c.jpg?v=0" alt="" width="400" height="352" /></p>
<p style="TEXT-ALIGN: justify">12.- Seleccionamos la conexión que creamos recién y click en aceptar, una ventana de confirmación nos avisara que la tabla fue migrada con exito.</p>
<p style="TEXT-ALIGN: justify">13.- Repetimos el proceso con todas las tablas, el contenido de estas se traspasa automaticamente junto con ellas, no asi las relaciones o los tipos de claves.</p>
<p style="TEXT-ALIGN: justify">Al terminar con nuestras tablas ya tenemos nuestra base de dato migrada de Access a MySQL.</p>
<p style="TEXT-ALIGN: justify">Cualquier duda, dejen su comentario.</p>
<p style="TEXT-ALIGN: justify"><img src="http://farm4.static.flickr.com/3043/3056524059_52d616c96c.jpg?v=0" alt="" width="400" height="314" /></p>
<p style="TEXT-ALIGN: justify">Por ahora,</p>
<p style="TEXT-ALIGN: justify">Me despido.</p>
<p style="text-align: center;"><strong>Staff Comolohago.cl</strong></p>
<p style="TEXT-ALIGN: justify">
]]></content:encoded>
			<wfw:commentRss>http://www.comolohago.cl/2009/05/04/como-pasar-una-base-de-datos-de-access-a-mysql/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

