De Excel a MySQL fácilmente y sin romperte la cabeza by @puntogeek

fuente: http://www.puntogeek.com/2011/06/24/de-excel-a-mysql-facilmente-y-sin-romperte-la-cabeza

Hoy me vi en la necesidad de exportar una “base de datos” creada en Excel (Las comillas son porque no estoy del todo de acuerdo en que se hagan en Excel, existiendo soluciones específicas para ello), a un servidor con MySQL. Y como fue algo nuevo para mi, les dejo el como lo realicé, por si a alguien más le llegase a servir.

Antes que todo crearemos una pequeña tabla en Excel a manera de ejemplo, con 4 campos como se observa en la imagen de arriba, o bien, si ya tienen su tabla hecha, se pueden ahorrar este paso.

Lo que sigue es guardar el archivo, pero no como documento de Excel. En las opciones de “Guardar como” seleccionaremos la que mencione “CSV (Delimitado por comas)(*.csv)“, o algo similar.

Con Excel ya terminamos. Pero tenemos que modificar algo en este archivo. Así que lo abrimos en nuestro editor de texto favorito, y vamos a eliminar la primera línea. Esta es la que tiene el título de los campos, y no nos interesa, ya que de dejarla, se rellenaría nuestra base de datos en MySQL con esos valores.

Ahora sí, manos a la obra con phpmyadmin. Primero tenemos que crear una nueva base de datos, acto seguido creamos una tabla, y añadiremos los 4 campos correspondientes: nombre, sexo, estado_civil y nacionalidad. Con sus respectivos atributos y toda la cosa.

El nombre de mi tabla es “fulanitos”, en una base de datos que llamé “xxx”. En este caso todos serán del tipo VARCHAR, con longitud más o menos calculada de rápido, a manera de ejemplo solamente. Y vemos que todo salió bien:

Sigue la última parte. Es aquí donde radica el “truco”. Que no es más que una simplesentencia SQL que lo que hará será tomar un archivo como referencia, leerlo, e interpretarlo según dos parámetros que le indicaremos:

  • Los datos que van en cada campo se separan mediante una coma (“,”)
  • Los diferentes registros se separan por un salto de línea (“\n”)

La sentencia es la siguiente, y la debemos realizar desde la sección de “SQL”, que está en el menú superior:

LOAD DATA INFILE ‘ubicación/del/archivo’ INTO TABLE ‘nombre_de_la_tabla’

FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’;

Y listo, si todo salió bien (Si hubo errores, revisa bien la ubicación del archivo que indicaste), tendremos nuestra BDD de Excel exportada a MySQL:

Tip: En mi caso, en Ubuntu, coloqué el archivo .csv en el escritorio, y la ruta que seguí para llegar a él desde la sentencia SQL fue:  ../../../../home/jonateo/Desktop/bdd.csv

Para que lo tengan en cuenta, es una ruta un poco rara sí, pero los “../” son para retroceder y poder llegar a las carpetas padre.

Anuncios

Convertir fechas entre #MySQL y castellano, en #PHP by @midesweb para @deswebcom

Fuente: http://www.desarrolloweb.com/articulos/1280.php

Las fechas son uno de esos típicos asuntos que pueden hacer que nos rompamos la cabeza a la hora de programar una página. Razón de ello es que tienen distintos formatos dependiendo del país, del lenguaje de programación o de la base de datos que estemos utilizando.

Cuando utilizamos la tecnología PHP solemos trabajar con la base de datos MySQL. En estos dos sistemas los formatos de fechas cambian sensiblemente, así que será muy interesante conocer una manera rápida de pasar de un formato de fecha a otro, dependiendo de dónde vamos a utilizar esa fecha. Pues, si trabajamos con MySQL deberemos expresar la fecha de una manera distinta a la que lo haríamos a la hora de mostrarla en la página para que la entienda fácilmente un lector hispano.

En muchos casos, debemos vérnoslas entre dos tipos de formatos distintos, aunque podría ser peor. Por ejemplo, si la página estuviese en varios idiomas, sería importante escribir correctamente las fechas en cada uno de los idiomas.

Dejando temas relacionados con el idioma aparte -concentrándonos tan sólo en el Español-, en nuestras páginas programadas en PHP y con base de datos MySQL, tendremos que trabajar con dos formatos. Por un lado tenemos las fechas en castellano, que tienen el formato dd/mm/aaaa y por otro lado tenemos el formato de MySQL, que tiene la sintaxis aaaa-mm-dd.

Lo más cómodo, tal como vemos nosotros este problema, es crear un par de funciones que conviertan las fechas de un formato a otro. Habrá una función que convertirá la fecha de MySQL a Castellano y otra que lo convierta de Castellano a MySQL.

////////////////////////////////////////////////////
//Convierte fecha de mysql a normal
////////////////////////////////////////////////////
function cambiaf_a_normal($fecha){
ereg( “([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})”, $fecha, $mifecha);
$lafecha=$mifecha[3].”/”.$mifecha[2].”/”.$mifecha[1];
return $lafecha;
}

////////////////////////////////////////////////////
//Convierte fecha de normal a mysql
////////////////////////////////////////////////////

function cambiaf_ a_mysql($fecha){
ereg( “([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})”, $fecha, $mifecha);
$lafecha=$mifecha[3].”-“.$mifecha[2].”-“.$mifecha[1];
return $lafecha;
}

Las funciones utilizan expresiones regulares que no hemos visto todavía, así que no vamos a tratar de explicar cómo funcionan, sino que explicaremos cómo utilizarlas.

Mostrar en la página una fecha en castellano

Si tenemos una fecha en formato MySQL y deseamos colocarla en una página haremos algo como sigue.

Suponemos que la fecha está extrayéndose a través de una consulta a la base de datos y la tenemos en una variable llamada $fila->fecha. Además, colocamos la fecha en un campo de formulario.

<input type=”text” name=”fecha” value=”<?echo cambiaf_a_normal($fila->fecha);?>”>

Colocar en la base de datos una fecha en formato MySQL

Cuando el usuario nos manda una fecha, por ejemplo, a través de un formulario con un campo como el que acabamos de ver, lógicamente, escribirá la fecha en castellano. Pero nosotros deseamos guardarla en una base de datos en un formato distinto, así que habremos de convertirla.

Suponemos que tenemos la fecha en una variable llamada $fecha y que está en formato castellano. Además, queremos colocarla en una sentencia SQL que deseamos ejecutar en la base de datos para insertar un registro que contiene, entre otros datos, la fecha que el usuario ha escrito.

mysql_query (“insert into documento (titulo_documento, fecha_documento, cuerpo_documento) values (‘$titulo_documento’, ‘” . cambiaf_a_mysql($fecha) . “‘, ‘$cuerpo_documento’)”);

Lleva un servidor PHP/MySQL en tu pendrive by @DGLibre

fuente: http://dglibre.com/tutoriales/lleva-un-servidor-phpmysql-en-tu-pendrive/

En este tutorial explicaré como montar un servidor portable Apache/PHP/MySQL en un pendrive. Lo cual nos puede resultar útil cuando necesitamos ejecutar una web dinámica sin disponer de acceso a Internet y no podemos, o no queremos, instalar un servidor completo en el ordenador.

Instalando una distribución de GNU/Linux portable personalizada.

La primera opción que tuve en cuenta fue instalar una distribución de GNU/Linux capaz de iniciarse desde el pendrive. Aunque le veo 3 grandes desventajas:

  • No todos los ordenadores son capaces de arrancar el sistema operativo por USB.
  • El problema del reconocimiento de hardware. Pues la distribución de GNU/Linux podría no ser compatible con el ordenador donde quisiera ejecutar el servidor.
  • Y aparte de los archivos de Apache/PHP/MySQL, obligaba a instalar un sistema operativo completo.

Aún así puede tener ciertas ventajas  y usando la distribución Slax es muy sencillo de hacer. Por si alguien le interesa explicare los pasos a realizar.

Lo primero sería descargar Slax, en mi opinión la mejor distribución para pendrives de la actualidad, muy completa, sencilla y ligera. Pero no descargaremos la versión básica, sino que añadiremos más software desde su propia página web (una estupenda herramienta para hacer distribuciones personalizadas al alcance de todos los usuarios).

slax.org/build.php

Desde la sección Build Slax podemos añadir o eliminar software, esta vez solo añadiremos XAMPP y todas sus dependencias: Mysql, sqlite, python, tcl y tk. Quedando de la siguiente forma:

tuto5

Una vez añadidos los paquetes necesarios, descargamos Slax haciendo clic en Download TAR. El archivo .tar contendrá la distribución de GNU/Linux personalizada con los paquetes que hemos añadido ya instalados y configurados, más sencillo imposible.

El fichero .tar lo descomprimimos dentro de nuestro pendrive, de forma que queden en el directorio raíz una carpeta llamada slax y otra llamada boot.

Para hacer “arrancable” el pendrive, ejecutamos dentro de la carpeta boot el archivo bootinst.bat si estamos en Windows o bootinst.sh si estamos en Linux. Y listo, Slax estará instalada y al iniciar el ordenador con el pendrive insertado en un puerto USB arrancaremos el sistema operativo nuevo, sin modificar los datos alojados en el disco duro.

Aclaración: Si nunca has usado nada parecido, es muy probable que tu ordenador no esté configurado para arrancar por USB. Para cambiar esto deberás meterte en la BIOS y cambiar el orden de arranque. Esto es peligroso si no sabes realmente lo que estás haciendo, lee antes el manual de la placa base para saber cómo realizarlo.

Una vez arrancada la distribución Slax nos encontraremos con el típico escritorio de KDE 3.5 y bastante software instalado de serie. Pero lo que realmente nos interesa es iniciar XAMMP y saber cómo instalar nuestra aplicación dinámica. Para ello nos vamos a la carpeta home y dentro de ella a la carpeta xampp, donde entre otras cosas tendremos los siguientes 3 scripts:

tuto6

Como habréis adivinado, 1_lampp_start inicia el servidor Apache/PHP y Mysql, mientras que 3_lampp_stop los cierra. Una vez iniciados si entramos en localhost con un navegador, en este caso Konqueror, nos encontraremos con sus clásicas opciones. Entre ellas el acceso a PhpMyAdmin, desde donde podremos importar cómodamente las bases de datos MySQL que necesitemos.

Por último, tendremos que mover los archivos de nuestra aplicación dinámica a la carpeta: /opt/lampp/htdocs/

Mediante software portable para Windows.

La segunda opción era instalar un servidor portable que funcionará sobre Windows (sistema operativo que, por suerte o por desgracia, encontramos en el 99% de los PC empresariales). Me parece la solución más adecuada, pues no tendremos que preocuparnos de modificar la BIOS o el reconocimiento de hardware.

Lo primero es instalar la plataforma que hará portable el servidor, por comodidad use PortableApps, gratuito y software libre (GPL). En su web oficial podemos descargar 3 versiones, según queramos PortableApps solo o con varios programas ya instalados de serie. Yo descargue solo la plataforma, que además es la única versión multilenguaje:

PortableApps.com

También necesitaremos los archivos del servidor, que en este caso será XAMPP Lite y el plugin para usarlo con PortableApps:

XAMPP Lite

XAMPP Launcher 1.3

En primer lugar instalamos PortableApps en nuestro pendrive. Es recomendable que indiquemos para la instalación el directorio raíz del pendrive y no una carpeta.

Luego descomprimimos XAMPP Lite dentro del pendrive, obligatorio que sea en el directorio raíz o el plugin luego no lo encontrará. Si nuestro pendrive no es muy rápido en escritura de archivos podemos ir a tomar un café, tardara un buen rato. Una vez terminado tendremos una carpeta llamada xampplite (o xampp si no elegimos la versión reducida), dentro de la cual estarán todos los archivos del servidor.

Ahora nos toca instalar el plugin que conectara PortableApps con XAMPP. Ejecutamos su instalador y nos aseguramos de que sea correcta la ruta de instalación, que deberá ser la carpeta PortableApps.

Solo nos queda el último paso, ejecutamos StartPortableApps.exe y nos saldrá el típico menú de esta aplicación. Primero vamos a Opciones y seleccionamos el idioma español. Luego buscamos el icono de XAMPP Control Panel, si aparece es que ha reconocido el plugin automáticamente. En caso contrario, vamos a Opciones y hacemos clic en Actualizar Iconos.

portableapps

¡Ya tenemos un servidor PHP/MySQL portable en nuestro pendrive!

Hacerlo funcionar será tan fácil como instalarlo, pinchamos en XAMPP Control Panel para iniciar el programa y seleccionamos Start en Apache y MySQL.

xampp

Ya tenemos los servidores de archivos y de base de datos en funcionamiento. Ahora desde cualquier navegador accedemos alocalhost y XAMPP nos preguntara el idioma, tras lo cual podemos acceder a todo el software que viene de serie, incluyendo phpMyAdmin y Webalizer.

xampp2

Para instalar una web dinámica dentro de nuestro servidor portable procederemos como siempre. Por ejemplo, desde phpMyAdmin podemos importar la base de datos MySQL. Y los archivos bastara con copiarlos en la carpetaxampplite\htdocs.

realizar un backup o copia de seguridad de tu base de datos #MySql desde #PHP by indomita

Fuente: blog-indomita.blogspot.com.es

//servidor MySql
$C_SERVER='tu_servidor';
//base de datos
$C_BASE_DATOS='tu_base_de_datos';
//usuario y contraseña de la base de datos mysql
$C_USUARIO='tu_usuario';
$C_CONTRASENA='tu_contraseña';
//ruta archivo de salida 
//(el nombre lo componemos con Y_m_d_H_i_s para que sea diferente en cada backup)
$C_RUTA_ARCHIVO = '/ruta_hasta/backups/backup_'.date("Y_m_d_H_i_s").'.sql';
//si vamos a comprimirlo
$C_COMPRIMIR_MYSQL='true';


//comando
$command = "mysqldump --opt -h ".$C_SERVER." ".$C_BASE_DATOS." -u ".$C_USUARIO." -p".$C_CONTRASENA.
     " -r \"".$C_RUTA_ARCHIVO."\" 2>&1"; 
 
//ejecutamos
system($command);

//comprimimos
if ($C_COMPRIMIR_MYSQL == 'true') {
 system('bzip2 "'.$C_RUTA_ARCHIVO.'"');
}

www.coudlain.com web 2.0

CoudLain.com es el portfolio on-line de un programador web de Gijon, Asturias

Pagina web desarrollada en xhtml, css2, flash, actionscript, asp, php, mysql, access, xml, w3c

www.coudlain.com