Recent News

PHP y MySQL Importar archivo de excel a cualquier tabla y cualquier columna de la base de datos

Tal como lo dice en el título, el código presentado a continuación nos va a permitir ingresar a una base de datos Mysql utilizando PHP desde un archivo creado en excel de extensión .csv (delimitado por comas).
Este código nos va a permitir ingresar la cantidad de datos necesarios a una o multiples tablas y a una o diferentes columnas sin requerir de alteraciones en el código fuente,  de una base de datos sin requerimiento de configuraciones grandes o complicadas.
Para que este ejemplo este completo iniciaremos creando una tabla para nuestra base de datos en Mysql.
CREATE TABLE prueba;
 
CREATE TABLE IF NOT EXISTS `estudiante` (
`id_estudiante` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`nombre` varchar(100) NOT NULL,
`apellidos` varchar(100) NOT NULL,
`telefono` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Ahora que tenemos nuestra base de datos creada y nuestra tabla, revisaremos un poco el código de importación y sus dependencias para realizar una importación exitosa.
estructura

Como se puede apreciar, tenemos archivos de hojas de estilo, archivos de javascript y 6 archivos en PHP que realizan la carga. Es de vital importancia realizar una correcta configuración dentro de los archivos db.php y save.php.
db.php
paso2
Es importante notar que el archivo db.php cuenta con 170 líneas de código de las cuales no tocaremos ninguna otra que las lineas 8, 10 y 12.
En la linea 8 debemos poner el nombre del usuario de nuestra conexión a la base de datos.
En la linea 10 debemos poner el password de acceso a la base de datos relacionado a la cuenta.
En la linea 12 debemos poner el nombre de nuestra tabla que en este caso es “prueba“.
save.php
save.php

Lo único que requerimos modificar en el archivo save.php es a donde redireccionar nuestra página una vez que se haya ingresado los datos a la base de datos.
En la linea de código 149 tenemos un header(“Location: direccion_a_redireccionar.extension”); que esta en comentario, esta línea debemos quitar el comentario y poner la dirección a donde va a redireccionar, OJO hay que dejar en claro de que esta modificación no es obligatoria.
  • Bueno, ahora solo necesitamos los datos a ingresar a la base de datos, estos deben estar en un archivo en excel que a posterior guardaremos con extensión .csv.
  • Es de vital importancia que tengamos configurado correctamente nuestro windows a la opción de separador de miles en “,” (coma), para que el algoritmo no contenga errores. Aqui tenemos un pequeño manual que nos explica como debemos realizar esta configuraciónConfigurar el separador de miles
  • Es muy importante que nuestros datos en el archivo en excel no lleven “,” la coma entre palabras.
  • En caso de llevar la “,” coma entre palabras y que sea importante su conservación, en el panel de configuración de separador de miles debemos utilizar en vez de una “,” un punto y coma “;” y en el archivo vista.php en la linea 70 debemos cambiar $data  = explode(“,”, fgets($fp)); por esto $data  = explode(“;”, fgets($fp)); pero esto es solo necesario si quieres realizar la importación de manera avanzada y tienes conocimientos avanzados en PHP.
Datos de ejemplo:
PASO4

Este es el archivo en excel que vamos a importar, como veran solo tiene 3 columnas y 5 filas.
Este archivo debemos guardarlo con .csv (delimitado por comas).
Siguiendo el ejemplo de las imagenes a continuación.
paso5

paso6

Y con esto tendremos guardado correctamente nuestro archivo.
Ahora vamos a hacerlo correr!
Si no puedes correr archivos del tipo .php debes crear un servidor en tu PC para eso te recomiendo que instales este archivo. XAMPP.
Los archivos del ejemplo los pondremos en esta dirección: C:\xampp\htdocs\
paso7

Y lo correremos abriendo el navegador en esta direccion: http://localhost/excel/ de preferencia utilicemos el google chrome, firefox, Baidu, Maxtho Nitro u Opera.
Y tendremos algo como esto:
paso8

Una pantalla muy sencilla donde debemos buscar el archivo .csv que acabamos de crear.
paso9

paso10

Y tendremos una vista similar a esta:
paso11

Podemos apreciar que nos demuestra un detalle de lo que estamos por importar.
Ahora debemos decirle donde va a ingresar los datos.
paso12

Donde dice “Seleccione”, seleccionamos la tabla y automáticamente nos aparecera debajo otro selector donde debemos especificar el campo donde ingresara.
Una vez seleccionados quedaran como en la siguiente imagen.
paso13

Y ahora debemos dar clic en el botón “Guardar Datos” y listo.
En mi caso, y porque no puse un lugar de redirección, este es el resultado:
paso14
Con esto finalizamos el ingreso.
Mencionar que podemos realizar el ingreso a diferentes tablas de la base de datos desde el mismo archivo y no importa la dimensión de nuestro archivo en excel.
Aqui tengo un ejemplo con un archivo diferente y con datos diferentes en una base de datos diferente.
paso15

Como se puede apreciar, se ingresan a diferentes tablas, diferentes columnas y en desorden y el resultado es el mismo:
paso16

Espero les haya servido de ayuda!
No olvides compartirlo en tus redes sociales si te ha gustado!
Importar datos a una base de datos Mysql con PHP, sin importar las tablas y los campos.
Archivos: Descargar archivos
Archivo en .CSV Descargar .CSV
OHK

IPV6 Explicado por Google

¿Qué pasaría si Internet se quedara sin espacio?


En realidad, es algo que ya está ocurriendo.


Vint Cerf, director de Evangelización de Internet de Google y uno de los fundadores de Internet, habla sobre la próxima versión de Internet, IPv6, y sobre los motivos por los que es necesaria.

¿Por qué se está agotando el espacio de Internet?

Al igual que los teléfonos utilizan un sistema de números telefónicos para realizar llamadas, cada dispositivo conectado a Internet obtiene un número único conocido como "dirección IP" que lo conecta a la red global online.

El problema es que el sistema actual de direcciones de Internet, el protocolo IPv4, solo tiene espacio para aproximadamente 4.000 millones de direcciones, lo cual apenas es suficiente para la población mundial y menos aún para los dispositivos online actuales y futuros (incluidos, entre otros, ordenadores, teléfonos, televisores, relojes, frigoríficos y automóviles).

Actualmente, comparten direcciones más de 4.000 millones de dispositivos, y a medida que el protocolo IPv4 se quede sin direcciones disponibles, todo el mundo tendrá que compartirlas.

IPv6 Graph

¿Cómo se está ampliando el espacio de Internet para que siga creciendo?

Está claro que Internet necesita un mayor número de direcciones IP.  ¿Cuántas más exactamente? Bueno, ¿qué te parecen 340 sextillones? Esa cantidad es el número de direcciones que puede gestionar la nueva red de "tuberías" de Internet, el protocolo IPv6. Se trata de un número lo bastante grande para proporcionar a todos los habitantes de la Tierra su propia lista de miles de millones de direcciones IP.

En otras palabras, este número es lo bastante grande para ofrecer a Internet un espacio infinito para crecer a partir de hoy hasta el futuro previsible.

¿Cuándo se producirá la migración?

Sustituir el sistema de tuberías de Internet tardará algún tiempo. El Día mundial del IPv6, que tendrá lugar el 6 de junio de 2012, marcará el comienzo de una implementación coordinada por los principales sitios web y proveedores de equipamiento y servicios de Internet.

En Google, creemos que IPv6 es esencial para el continuo crecimiento y buen estado de Internet y que, al permitir que todos los dispositivos se comuniquen entre sí directamente, IPv6 posibilita el desarrollo de servicios nuevos e innovadores.

No es necesario que realices ninguna acción para el cambio, pero si quieres obtener más información y admitir IPv6, consulta las preguntas frecuentes.

Fuente Original 

Validacion de un formulario Email

Por: el-brujo

Fuente Original: Aqui

Validar e-mail:
Código
function verify_email($email){
 
    if(!preg_match('/^[_A-z0-9-]+((\.|\+)[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*(\.[A-z]{2,4})$/',$email)){
        return false;
    } else {
        return $email;
    }
}
 
Código
   function EmailValidation($email)
   {
   $email = htmlspecialchars(stripslashes(strip_tags($email))); //parse unnecessary characters to prevent exploits
   if ( eregi ( '[a-z||0-9]@[a-z||0-9].[a-z]', $email ) )
   { //checks to make sure the email address is in a valid format
   $domain = explode( "@", $email ); //get the domain name
   if ( @fsockopen ($domain[1],80,$errno,$errstr,3))
   {
   //if the connection can be established, the email address is probably valid
   return true;
   } else
   {
   return false; //if a connection cannot be established return false
   }
   return false; //if email address is an invalid format return false
   }
   }

Código
function validar_email($email) {
 
list($local, $domain) = explode("@", $email);
 
$pattern_local = '^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$';
$pattern_domain = '^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$';
 
$match_local = eregi($pattern_local, $local);
$match_domain = eregi($pattern_domain, $domain);
 
if ($match_local && $match_domain) {
return 1;
} else {
return 0;
}
}
En PHP 5:

Se añade la funcionalidad de filter_var

Código
if(filter_var("prueba@dominio.com", FILTER_VALIDATE_EMAIL)){
echo "Ok";
} else {
echo "Error";
}
Usando filter _var y comprobando que tenga un punto el dominio con una expresión regular:

Código
function validateEmailAddress($email) {
   return filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $email);
}
Ejemplo Wordpress (usando expresiones regulares)

Código
   function is_email($email) {
    if( strlen( $email ) < 3 ){
     return false;
    }
    if( strpos( $email, '@', 1 ) === false ){
     return false;
    }
    list( $local, $domain ) = explode( '@', $Valor, 2 );
    if( !preg_match( '/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/', $local ) ){
     return false;
    }
    if( preg_match( '/\.{2,}/', $domain ) ){
     return false;
    }
     if( trim( $domain, " \t\n\r\0\x0B." ) !== $domain ){
     return false;
    }
     $subs = explode( '.', $domain );
     if( 2 > count( $subs ) ){
     return false;
    }
    foreach ( $subs as $sub ) {
     if( trim( $sub, " \t\n\r\0\x0B-" ) !== $sub ){
      return false;
     }
     if( !preg_match('/^[a-z0-9-]+$/i', $sub ) ){
      return false;
     }
    }
    return true;
   }

Verificar e-mail mirando registro MX si es válido,  útil para separar nombre y dominio de un e-mail

Código
function verify_email_dns($email){
 
   // This will split the email into its front
   // and back (the domain) portions
   list($name, $domain) = explode('@',$email);
 
   if(!checkdnsrr($domain,'MX')){
 
       // No MX record found
       return false;
 
   } else {
 
       // MX record found, return email
       return $email;
 
   }
}

Código
$string = 'some_name@somedomain.com';
$res = explode('@', $string);
// array
echo $res[0];
$name = $res[0];
echo $name;

substr

Código
$mail = "some_name@somedomain.com";
echo substr($mail, 0, strpos($mail, '@') );
 
explode

Código
list($name, $domain) = explode('@', $mail);
echo $name;

 

Recent Comments | Recent Posts


Bloggerized by : GosuBlogger | designed by: Website Builder | Coded by: Blog Directory | Provided by: Wedding photojournalism chicago
bottom