Foros del Web » Programando para Internet » PHP »

Subir datos de un archivo de texto a una base de datos sql

Estas en el tema de Subir datos de un archivo de texto a una base de datos sql en el foro de PHP en Foros del Web. Pues cuento que tengo el presente problema, poseo un archivo de texto de casi 5000 nombres, muchos de ellos repetidos y deseo hacer un filtro ...
  #1 (permalink)  
Antiguo 03/01/2009, 15:48
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Subir datos de un archivo de texto a una base de datos sql

Pues cuento que tengo el presente problema, poseo un archivo de texto de casi 5000 nombres, muchos de ellos repetidos y deseo hacer un filtro antes de subirlos a la base de datos para evitar que alguno este repetido, para hacer todo esto he creado este codigo.

Código php:
Ver original
  1. <?php
  2. function conectar() {  // conexion a base de datos
  3.  
  4.     global $conexion;
  5.     $conexion = mysql_connect("localhost", "root", "")
  6.                 or die("Error en Conexi?n a Servidor de Base de datos");
  7.     mysql_select_db("test", $conexion) or die("Error en Conexion a Base de datos");
  8. return $conexion;
  9. }
  10. $file=file("nombres.txt");  //tenen en cuenta la ruta de tu archivo...  
  11. echo "Registros:";
  12. echo count($file);
  13. echo "<br>";
  14.  
  15. for ($i = 0; $i <= count($file); $i++) {
  16.      //TRATAMOS LOS DATOS
  17.      $cadena = $file[$i];
  18.      $cadena = strtolower($cadena);
  19.      $matriz = split(" ", $cadena);
  20.      $cadena = $matriz[0];
  21.      $cadena = strtr($cadena, áéíóúñ, aeioun);
  22.      $cadena = str_replace("i","a",$cadena);
  23.      $cadena = str_replace("é","e",$cadena);
  24.      $cadena = str_replace("Ã","i",$cadena);
  25.      $cadena = str_replace("ó","o",$cadena);
  26.      $cadena = str_replace("±","n",$cadena);                 
  27.      $cadena = ucwords($cadena);
  28.      $cadena = trim($cadena);
  29.      //NOS CONETAMOS A LA BASE DE DE DATOS
  30.  
  31. conectar();
  32. //Verificamos que no existe el nombre, y si no existe lo insertamos en la base de datos
  33. $query = "SELECT nombre FROM datos WHERE nombre = '$cadena'";
  34. if($resultado = mysql_query($query)){
  35.         if(mysql_num_rows($resultado) == 0){
  36.         $sql = "INSERT INTO datos
  37.        VALUES (NULL, '$cadena')";
  38.      }
  39. }  
  40. }
  41. ?>

Pero aun no termina de funcionar introduciendome los datos en la base de datos... alguna ayuda???
  #2 (permalink)  
Antiguo 03/01/2009, 15:53
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Respuesta: Subir datos de un archivo de texto a una base de datos sql

Hola Pax-Man, No te faltaría poner mysql_query($sql) ?

Código PHP:
if(mysql_num_rows($resultado) == 0){
$sql "INSERT INTO datos VALUES (NULL, '$cadena')";

mysql_query($sql);

__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #3 (permalink)  
Antiguo 03/01/2009, 15:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Subir datos de un archivo de texto a una base de datos sql

Ya hiciste la cadena de la consulta, pero te recomiendo mejor como esta:

$sql = "INSERT INTO datos SET nombre_del_campo = 'cadena'";

Y ahora falta ejecutarla:
mysql_query($sql) or die(mysql_error());

Edito: Me gano hpg147, como fue que no lei?
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 03/01/2009, 16:21
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Subir datos de un archivo de texto a una base de datos sql

Que error mas estupido... jajaja.. ya las horas sin dormir me tienen mal.. jajaja.. gracias muchas gracias...

Triby lo intentare a asi a ver que tal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.