Skip to content

Importar de excel a mysql con php

junio 6, 2011

Necesitas importar registros a tu base de datos desde Excel y ¿aún no sabes como hacerlo?, en este artículo te explico con un ejemplo sencillo como puedes hacerlo, así que no te pierdas este artículo y mejor aún léelo hasta el final.

Te va ser muy útil cuando necesitas cargar datos que ya tienes almacenados en una hoja de Excel y que ahora necesitas insertarlos en tu base de datos, o bien necesitas jalar datos del mismo Excel para realizar cálculos en tu código, etc. muchos ejemplos donde necesites leer un documento en Excel.

Pero bueno a ti te interesa el ejemplo y eso te voy a explicar ahorita, paso a paso:

Primero: La base de datos que voy a utilizar para este ejemplo se llama: “escuela” y la tabla en la voy insertar los registros extraídos de Excel se llama “alumnos” y tiene los campos “(id, nocontrol, nombre, grado, grupo, sexo).

Segundo: Necesitas descargar la Clase PHPExcel de Maarten Balliauw (tiene licencia LGPL), y la puedes descargar desde aquí http://www.codeplex.com/PHPExcel, o bien ya viene incluida en el ejemplo.

Tercero: El siguiente código es el que hace el trabajo pesado, se encuentra comentado:

<!– http://ProgramarEnPHP.wordpress.com –>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

<title>:: Importar de Excel a la Base de Datos ::</title>

</head>

<body>

<!– FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL –>

Selecciona el archivo a importar:

<form name=”importa” method=”post” action=”<?php echo $PHP_SELF; ?>” enctype=”multipart/form-data” >

<input type=”file” name=”excel” />

<input type=’submit’ name=’enviar’  value=”Importar”  />

<input type=”hidden” value=”upload” name=”action” />

</form>

<!– CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload –>

<?php

extract($_POST);

if ($action == “upload”){

//cargamos el archivo al servidor con el mismo nombre

//solo le agregue el sufijo bak_

$archivo = $_FILES['excel']['name'];

$tipo = $_FILES['excel']['type'];

$destino = “bak_”.$archivo;

if (copy($_FILES['excel']['tmp_name'],$destino)) echo “Archivo Cargado Con Éxito”;

else echo “Error Al Cargar el Archivo”;

////////////////////////////////////////////////////////

if (file_exists (“bak_”.$archivo)){

/** Clases necesarias */

require_once(‘Classes/PHPExcel.php’);

require_once(‘Classes/PHPExcel/Reader/Excel2007.php’);

// Cargando la hoja de cálculo

$objReader = new PHPExcel_Reader_Excel2007();

$objPHPExcel = $objReader->load(“bak_”.$archivo);

$objFecha = new PHPExcel_Shared_Date();

// Asignar hoja de excel activa

$objPHPExcel->setActiveSheetIndex(0);

//conectamos con la base de datos

$cn = mysql_connect (“localhost”,”root”,”pass”) or die (“ERROR EN LA CONEXION”);

$db = mysql_select_db (“escuela”,$cn) or die (“ERROR AL CONECTAR A LA BD”);

// Llenamos el arreglo con los datos  del archivo xlsx

for ($i=1;$i<=47;$i++){

$_DATOS_EXCEL[$i]['nocontrol'] = $objPHPExcel->getActiveSheet()->getCell(‘B’.$i)->getCalculatedValue();

$_DATOS_EXCEL[$i]['nombre'] = $objPHPExcel->getActiveSheet()->getCell(‘C’.$i)->getCalculatedValue();

$_DATOS_EXCEL[$i]['grado']= $objPHPExcel->getActiveSheet()->getCell(‘D’.$i)->getCalculatedValue();

$_DATOS_EXCEL[$i]['grupo']= $objPHPExcel->getActiveSheet()->getCell(‘E’.$i)->getCalculatedValue();

$_DATOS_EXCEL[$i]['sexo'] = $objPHPExcel->getActiveSheet()->getCell(‘F’.$i)->getCalculatedValue();

}

}

//si por algo no cargo el archivo bak_

else{echo “Necesitas primero importar el archivo”;}

$errores=0;

//recorremos el arreglo multidimensional

//para ir recuperando los datos obtenidos

//del excel e ir insertandolos en la BD

foreach($_DATOS_EXCEL as $campo => $valor){

$sql = “INSERT INTO alumnos VALUES (NULL,'”;

foreach ($valor as $campo2 => $valor2){

$campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,'”;

}

$result = mysql_query($sql);

if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;}

}

/////////////////////////////////////////////////////////////////////////

echo “<strong><center>ARCHIVO IMPORTADO CON EXITO, EN TOTAL $campo REGISTROS Y $errores ERRORES</center></strong>”;

//una vez terminado el proceso borramos el

//archivo que esta en el servidor el bak_

unlink($destino);

}

?>

</body>

</html>

Cuarto: Te explico, lo primer

o es el formulario HTML que solicita el archivo a importar, luego una vez copiado correctamente el mismo en el servidor y gracias a la clase PHPExcel comenzamos a recorrerlo y obtener los datos del mismo hacia un arreglo multidimensional, ojo aquí se podría ir creando la consulta sql para insertarlo en la BD, pero la idea de guardarlo en el arreglo es poder procesar, utilizar y/o calcular si lo fuese necesario con esos datos almacenados.

Ya una vez almacenado los datos en el arreglo ahora los utilizamos para pasarlos a la consulta que se encarga de insertar los datos.

Ups, me extendí un

poco en la explicación pero espero haberme explicado, igual da click aquí para descargar el ejemplo completo, incluyendo el documento en Excel del ejemplo, solo recuerda poner los datos de conexión del mysql tuyo.

Ahora si nos vemos en la próxima, espero te sea de mucha, mucha utilidad como a mí. No dudes comentar o bien déjame tus dudas, yo dos veces por semana checo comentarios y contesto los mas posibles.

Atte, tu amigo
Salvador López

About these ads

From → Avanzado

32 comentarios
  1. Hola se ve bueno el tutorial, pero me sale este error: Acceso prohibido!

    Usted no tiene permiso de accesar al objeto solicitado. El objeto está protegido contra lectura, o no puede ser leido por el servidor.

    Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.

    Error 403

    —- A que se debe esto???? Ayuda por favor

  2. BRENDA MEZA permalink

    Muchas gracias por el tutorial!!! Si funciona correctamente… solamente modificando en el archivo php.ini en este pequeño codigo ;extension=php_zip.dll quitar el comentario “;” y listo… me funciono a la primera!!! :D…

    • Jan Carlos permalink

      amiga podrias pasarme todo el archivo completo,es que me hace falta para mi proyecto de sustentacion y lo necesito urgente

  3. Juan permalink

    la aplicacion esta buena, solo que teine problemas con la ñ y los acentos, como se puede arreglar?

  4. quero permalink

    foreach($_DATOS_EXCEL as $campo => $valor){
    $sql = “INSERT INTO alumnos VALUES (NULL,'”;
    foreach ($valor as $campo2 => $valor2){
    $campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,'”;
    }
    $result = mysql_query($sql);
    if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;}
    }

    no tengo claro como funciona este insert….

  5. David permalink

    Tuve que modificar un poco el codigo para que me dejara importar unos datos ( unos, porque solo me importa los 30 primeros, :S ).

    ¿No saben porque se da eso?y ¿como puedo importar totalmente el archivo?

  6. @overloadxd permalink

    excelente funciono al toque, saludos.

  7. @overloadxd permalink

    excelente, me anduvo al toque

    buenisima opcion para traspasar datos

    algun script para crear tablas desde php ma amigablemetne?

    saludos.

  8. Isma permalink

    Una consulta, en esta parte del código le pones $i<=47, Hay alguna manera de saber cuantas filas tengo con satos.. porque la cantidad de fila en los archivos siempre varia, las columnas en mi caso no. existe alguna función que haga eso?? porque sino inserta los datos y en todas las que "sobran" arroja error de consulta… ademas si tienes como promedio 5000 filas para insertar… es muy ineficiente poner 10.000, para que las inserte todas..

    for ($i=1;$igetActiveSheet()->getCell(‘B’.$i)->getCalculatedValue();
    $_DATOS_EXCEL[$i]['nombre'] = $objPHPExcel->getActiveSheet()->getCell(‘C’.$i)->getCalculatedValue();
    $_DATOS_EXCEL[$i]['grado']= $objPHPExcel->getActiveSheet()->getCell(‘D’.$i)->getCalculatedValue();
    $_DATOS_EXCEL[$i]['grupo']= $objPHPExcel->getActiveSheet()->getCell(‘E’.$i)->getCalculatedValue();
    $_DATOS_EXCEL[$i]['sexo'] = $objPHPExcel->getActiveSheet()->getCell(‘F’.$i)->getCalculatedValue();
    }

  9. Que mas brothers, encontre la solucion a lo que buscaba no fue necesaria una funcion del PHPEXCEL sino un simple contador, hagan lo siguiente incluso el codigo funciona sin objetos ojala les sirva de algo:

    :: Importar de Excel a la Base de Datos ::


    Estimado Usuario: Seleccione el archivo a importar:
    <form name="importa" method="post" action="” enctype=”multipart/form-data” >

    <?php
    extract($_POST);
    if ($action == "upload") //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
    {
    //cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
    $archivo = $_FILES['excel']['name']; //captura el nombre del archivo
    $tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)

    $destino = "bak_".$archivo; //lugar donde se copiara el archivo

    if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
    {
    echo "Archivo Cargado Con Exito”;
    }
    else
    {
    echo “Error Al Cargar el Archivo”;
    }

    ////////////////////////////////////////////////////////
    if (file_exists (“bak_”.$archivo)) //validacion para saber si el archivo ya existe previamente
    {
    /*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
    /** Invocacion de Clases necesarias */
    require_once(‘Classes/PHPExcel.php’);
    require_once(‘Classes/PHPExcel/Reader/Excel2007.php’);
    //DATOS DE CONEXION A LA BASE DE DATOS
    $cn = mysql_connect (“localhost”,”root”,””) or die (“ERROR EN LA CONEXION”);
    $db = mysql_select_db (“escuela”,$cn) or die (“ERROR AL CONECTAR A LA BD”);

    // Cargando la hoja de calculo
    $objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
    $objPHPExcel = $objReader->load(“bak_”.$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
    $objFecha = new PHPExcel_Shared_Date();

    // Asignar hoja de excel activa
    $objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)

    // Llenamos un arreglo con los datos del archivo xlsx
    $i=1; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
    $param=0;
    $contador=0;
    while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
    {

    $nocontrol=$objPHPExcel->getActiveSheet()->getCell(‘B’.$i)->getCalculatedValue();
    $nombre=$objPHPExcel->getActiveSheet()->getCell(‘C’.$i)->getCalculatedValue();
    $grado=$objPHPExcel->getActiveSheet()->getCell(‘D’.$i)->getCalculatedValue();
    $grupo=$objPHPExcel->getActiveSheet()->getCell(‘E’.$i)->getCalculatedValue();
    $sexo=$objPHPExcel->getActiveSheet()->getCell(‘F’.$i)->getCalculatedValue();

    $c=(“insert into alumnos values($i,$nocontrol,’$nombre’,’$grado’,’$grupo’,’$sexo’)”);
    mysql_query($c);

    if($objPHPExcel->getActiveSheet()->getCell(‘A’.$i)->getCalculatedValue()==NULL) //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
    {
    $param=1; //para detener el ciclo cuando haya encontrado un valor NULL
    }
    $i++;
    $contador=$contador+1;
    }
    $totalIngresados=$contador-1; //(porque se se para con un NULL y le esta registrando como que tambien un dato)
    echo “Total elementos subidos: $totalIngresados “;
    }
    else//si no se ha cargado el bak
    {
    echo “Necesitas primero importar el archivo”;}
    unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
    }

    ?>

  10. Muchas gracias eres un Dios, el ejemplo funciono perfectamente, solo tengo una duda, en el ejemplo solo importa hasta 47 registros, claro me doy cuenta que la cosa esta en el for que captura los datos, pero supon el caso en que no se cuantos registros tengo, hay alguna manera de saber cuantos registros escritos existen en el excel para luego ese valor capturarlo en un parametro y que este sea el limite del for, asi no sera necesario saber del usuario cuantos registros esta subiendo. Muchas gracias por el aporte y ayudame a ver si se halla solucion para esta otra situacion que te cuento.

  11. Marco permalink

    Hola, muy bueno el tutorial. Me pregunto si conoces alguna manera de que verifique si un dato en la base de datos ya existe. Que este no se guarde pero se continue con los demas.

  12. aunque ya hay algunos metodos para cargar excel a mysql, la data no siempre es la misma para todos. Va a servir bastante tu POST, me diste otro camino y parece bueno ^^, gracias por el aporte y por compartirlo

    Sldos.

  13. @r@ permalink

    Hola gracias por el aporte, pero cuando quiero cargar mas de 6 campos en mi bd no se puede marca error, si hago una importacion de no mas de 5 campos lo hace bien, despues del 5 ya no funciona marca error!!1

  14. Ara permalink

    hola gracias por el aporte pero me genera los siguientes errore

    Warning: copy(bak_a_importar.xlsx) [function.copy]: failed to open stream: Permission denied in /home
    *Warning: Invalid argument supplied for foreach() in /home
    *ARCHIVO IMPORTADO CON EXITO, EN TOTAL REGISTROS Y 0 ERRORES

    Warning: unlink(bak_a_importar.xlsx) [function.unlink]: No such file or directory in /home

  15. crashmetal permalink

    Hay problemas con la subida del Archivo Excel, aca les dejo el codigo correspondiente y el que ocupo yop:

    $status = “”;
    if ($_POST["action"] == “upload”) {
    // obtenemos los datos del archivo
    $tamano = $_FILES["archivo"]['size'];
    $tipo = $_FILES["archivo"]['type'];
    $archivo = $_FILES["archivo"]['name'];
    $prefijo = substr(md5(uniqid(rand())),0,6);

    if ($archivo != “”) {
    // guardamos el archivo a la carpeta files
    $destino = $archivo;
    if (copy($_FILES['archivo']['tmp_name'],$destino)) {
    $status = “Archivo subido: “.$archivo.”“;
    } else {
    $status = “Error al subir el archivo”;
    }
    } else {
    $status = “Error al subir archivo”;
    }
    }

    PD: El form ejecutenlo en un HTML y el este Codigo en un PHP para que funcione como corresponde. Saludos

  16. Martín Indico permalink

    Hola: He logrado subir con éxito el archivo, y la base de datos la he creado como se indica en el manual, pero al momento de que comienza el proceso de importación a la base de datos obtengo los siguiente errores:

    Selecciona el archivo a importar:

    Archivo Cargado Con Éxito

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 300

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 303

    Warning: Invalid argument supplied for foreach() in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 373

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 300

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 303

    Warning: Invalid argument supplied for foreach() in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 410

    Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 1526

    Fatal error: Uncaught exception ‘Exception’ with message ‘Active sheet index is out of bounds.’ in /home/hostingp/public_html/2mysql/Classes/PHPExcel.php:365 Stack trace: #0 /home/hostingp/public_html/2mysql/importar.php(39): PHPExcel->setActiveSheetIndex(0) #1 {main} thrown in /home/hostingp/public_html/2mysql/Classes/PHPExcel.php on line 365

    ¿Que es lo que he hecho mal? todo está como indica el manual pero tengo estos errores, por facvor, necesito ayuda para solucionarlo.

    Gracias por tus respuesta.

    • Hola Martín, la ultima vez que utiliza esta librería me tope con el mismo error y existen dos soluciones; la primera es modificar algunas lineas del php.ini (que ahorita no recuerdo) y la segunda (que yo utilice) fue la de cambiar de versión de PHP a una mas nueva y con eso en automático se soluciono el problema. Gracias por tu visita, pero este blog ya solo lo visito dos veces al mes, el que se encuentra activo es el de http://AprendeAprogramarEnPHPya.com/blog

      • Kunyaro permalink

        tengo la ultima version del php y el problema persiste
        saludos

    • shirley permalink

      Hola el promeba es que tienes Word 2003 y este ejemplo funciona con el 2007

  17. Edwin permalink

    gracias por el codigo pero me sale el siguiente error:

    Fatal error: Class ‘ZipArchive’ not found in D:\AppServ\www\excelamysql\Classes\PHPExcel\Reader\Excel2007.php on line 368

    esperando tu pronta respuesta

    Atentamente Edwin

    • Hola Edwin, la ultima vez que utiliza esta librería me tope con el mismo error y existen dos soluciones; la primera es modificar algunas lineas del php.ini (que ahorita no recuerdo) y la segunda (que yo utilice) fue la de cambiar de versión de PHP a una mas nueva y con eso en automático se soluciono el problema. Gracias por tu visita, pero este blog ya solo lo visito dos veces al mes, el que se encuentra activo es el de http://AprendeAprogramarEnPHPya.com/blog

    • la version valida de php debe ser PHP 5 >= 5.2.0
      normalmente la extension php_zip.dll debe de esta liberado si no es asi modifique el php.ini sacando el “;”. y debe quedar asi

      extension=php_zip.dll

  18. A mí tb me da error, cargo el archivo excel y aparece un error que dice Class ‘ZipArchive’ not found in C:\AppServ\www\importarDatos\Classes\PHPExcel\Reader\Excel2007.php on line 368

  19. Luciano permalink

    hola mira tengo el siguiente problema

    Notice: Undefined variable: action in C:\xampp\htdocs\excelamysql\importar.php on line 19 (esto me lo muestra en importar.php)

    y este cuando hago click en importar

    http://localhost/excelamysql/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20PHP_SELF%20in%20%3Cb%3EC:%5Cxampp%5Chtdocs%5Cexcelamysql%5Cimportar.php%3C/b%3E%20on%20line%20%3Cb%3E10%3C/b%3E%3Cbr%20/%3E

    ¡Objeto no encontrado!

    El enlace requerido no ha sido localizado en este servidor. El enlace en la página referente parece tener algun error o ha expirado. Por favor comunique al autor de la página el error.

    Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.
    Error 404
    localhost
    09/10/2011 08:06:54 p.m.
    Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1

    Agradeceria tu respuesta a la brevedad .. muy bueno el tutorial por cierto , un abrazo

    • Juan permalink

      Les cuento que el error que te sale es por la variable $action, que no esta definida ya que $PHP_SELF esta obsoleta, en la parte
      <form name="importa" method="post" action="” enctype=”multipart/form-data” > Cambiar esa variable por $_SERVER['PHP_SELF']. Aunque sigue saliendo el Notice, la importacion es exitosa.

      • Esteban permalink

        Como quedaria entonces o donde se cambia??? por que lo puse asi <form name="importa" method="post" action="” enctype=”multipart/form-data” > y ni siquiera me importa nada te lo agradeceria si me respondieras

  20. Lionel permalink

    Yo tengo elk mismos erro que ale sale ese mensaje y encima no carga en la base de datos

  21. Para los que tienen el error de “Archivo Cargado Con ÉxitoError al insertar registro 1Error al insertar registro 2Error al insertar registro 3 ARCHIVO IMPORTADO CON EXITO, EN TOTAL 3 REGISTROS Y 3 ERRORES” tienen que hacer 2 cosas:
    Primero habilitar php.ini la sentencia ;extension=php_zip.dll que esta con “;” , borrarlo y reiniciar apache.
    Segundo al crear la tabla alumnos con los campos (id, nocontrol, nombre, grado, grupo, sexo), no se olviden que id tiene que ser int, primary key, autoincrement, con eso les da full.

  22. Marcos Reyes permalink

    me perdi aqui

    foreach($_DATOS_EXCEL as $campo => $valor){

    $sql = “INSERT INTO alumnos VALUES (NULL,’”;

    foreach ($valor as $campo2 => $valor2){

    $campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,’”;

    }

    $result = mysql_query($sql);

    if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;}

    }

    //////////////////

    pero bueno analizare bien, una duda se puede dar formato a las celdas al momento de importar ?
    ejemplo yo tengo en una celda con datoa tipo time tamp y les tengo que dar un formato asi para poder insetarlos en el mysql
    aaaa-dd-mm HH:MM:ss

  23. ale permalink

    Hola!!!! muchas gracias por el tutorial, esta muy bueno pero sabes que me da error en la parte de insertar los archivos a la bd, gracias de antemano!!!!
    error:

    Archivo Cargado Con ÉxitoError al insertar registro 1Error al insertar registro 2Error al insertar registro 3 ARCHIVO IMPORTADO CON EXITO, EN TOTAL 3 REGISTROS Y 3 ERRORES

    • Isma permalink

      es por:$i<=47

      for ($i=1;$igetActiveSheet()->getCell(‘B’.$i)->getCalculatedValue();
      $_DATOS_EXCEL[$i]['nombre'] = $objPHPExcel->getActiveSheet()->getCell(‘C’.$i)->getCalculatedValue();
      $_DATOS_EXCEL[$i]['grado']= $objPHPExcel->getActiveSheet()->getCell(‘D’.$i)->getCalculatedValue();
      $_DATOS_EXCEL[$i]['grupo']= $objPHPExcel->getActiveSheet()->getCell(‘E’.$i)->getCalculatedValue();
      $_DATOS_EXCEL[$i]['sexo'] = $objPHPExcel->getActiveSheet()->getCell(‘F’.$i)->getCalculatedValue();
      }

      ese numero no es exacto… es mayor a la cantidad de filas que tienes para insertar

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 144 seguidores

A %d blogueros les gusta esto: