Foros del Web » Programando para Internet » PHP »

Como automatizar el INSERT en php?

Estas en el tema de Como automatizar el INSERT en php? en el foro de PHP en Foros del Web. hola salu2 foreros: Tengo un programita q hace lo siguiente; abre un archivo .csv lo lee e inserta en mysql los datos de 5 campos ...
  #1 (permalink)  
Antiguo 06/12/2007, 09:24
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Como automatizar el INSERT en php?

hola salu2 foreros:

Tengo un programita q hace lo siguiente; abre un archivo .csv lo lee e inserta en mysql los datos de 5 campos separados por ",", en problema q tengo es q solo lo hago con un dummy de 5 renglones, si al archivo le pongo 2000 archivos no los inserta y pues no se como hacerle para no tener q ponerlos a mano. mi pregunta es como le puedo hacer para que este mismo pueda meter +de los 5 q tiene, aqui les dejo el codigo:

Código:
<?php

$conexion = mysql_connect('localhost', 'root', '*******')
or die ('No puedo conectar con la base de datos por que: '. mysql_error());
mysql_select_db("test",$conexion);

$row = 1;

$fp = fopen ("dummy.csv","r");
while ($data = fgetcsv ($fp, 1000, ",")) 
{ 
$num = count ($data); 
print " <br>"; 
$row++; 

echo "$row.". $data[0]." ------------ ".$data[1]."-------".$data[2]."--------".$data[3]."--------".$data[4]; 
$insertar="INSERT INTO dummy (id_dummy, name, firstname, lastname, born_date) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')"; 
mysql_query($insertar); 
}
fclose ($fp);
?>

el csv seria mas o menos asi

1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06
1,2,3,4,1979-12-06
11,12,13,14,1979-12-06
21,22,23,24,1979-12-06
31,32,33,34,1979-12-06
41,42,43,44,1979-12-06
51,52,53,54,1979/10/06

salu2
  #2 (permalink)  
Antiguo 06/12/2007, 09:39
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Como automatizar el INSERT en php?

Pero porque dices que no se pueden insertar ¿Te marca error?¿La pagina se queda en blanco?, Por favor detalla un poco más tu problema para que alguien te pueda orientar

Saludillos.
  #3 (permalink)  
Antiguo 06/12/2007, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como automatizar el INSERT en php?

El codigo que tienes debe de funcionar, el problema es que tienes que aumentar el tiempo de ejecucion de tu script para que no se pare.

Saludos.
  #4 (permalink)  
Antiguo 06/12/2007, 10:34
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Como automatizar el INSERT en php?

hola de nuevo amigos y gracias por responder.

mira la pagina si corre y no me marca ningun error. solo q como te digo el archivo csv lo hice de 97 registros y el codigo solo hace q entren 5 y lo demas no, se ven todos en el navegador pero no los inserta en la base de datos.

Encontre este en la pagina de un chico de guatemala
Código:
<?php
function Conectarse()
{
       if (!($link=mysql_connect("localhost","root","*****")))  {
           echo "Error conectando a la base de datos.";
           exit();
       }
        if (!mysql_select_db("test",$link)) {
            echo "Error seleccionando la base de datos.";
           exit();
       }
       return $link;
}

$row = 1;
$handle = fopen("dummy.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    $row++;
    $insertar="INSERT INTO dummy(id_dummy, name, firstname, lastname, born_date) VALUES(";
    for ($c=0; $c<$num; $c++) {
        if ($c==($num-1))
              $cadena = $insertar."'".$data[$c] . "'";
        else
              $cadena = $insertar."'".$data[$c] . "',";
    }

    $cadena = $cadena.");";
    echo $cadena."<br>";

     $enlace=Conectarse();
	 mysql_query($insertar, $enlace);
    // $result=mysql_query($cadena, $enlace);
     mysql_close($enlace);
}

fclose($handle);

?>
<h2>Se insertaron <?php echo $row ?> Registros en la tabla Dummy</h2>
pero lo q me hace este es q despliega todo pero no me inserta nada en la base de datos, eso es lo q quiero hacer yo un FOR para automatizar el INSERT. salu2
  #5 (permalink)  
Antiguo 06/12/2007, 10:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 6 meses
Puntos: 1
Re: Como automatizar el INSERT en php?

Si tienes una clave primaria en el id de la Base de Datos no te dejará duplicar los datos, y creo que sólo tienes 5 ids diferentes en el listado que pusiste, asi que si no quieres duplicados está bien el script, sino tendrás que modificarlo.
  #6 (permalink)  
Antiguo 06/12/2007, 12:15
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Como automatizar el INSERT en php?

Cita:
Iniciado por Sanubrio Ver Mensaje
Si tienes una clave primaria en el id de la Base de Datos no te dejará duplicar los datos, y creo que sólo tienes 5 ids diferentes en el listado que pusiste, asi que si no quieres duplicados está bien el script, sino tendrás que modificarlo.
A veces lo mas simple es la respuesta...

con el primer ejemplo
solo hice un csv q no repitiera campos y jalo. gracias

y tambien gracias a todos por su ayuda
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 23:55.