Foros del Web » Programando para Internet » PHP »

INSERT en MySQL

Estas en el tema de INSERT en MySQL en el foro de PHP en Foros del Web. Hola amigos, tanto tiempo que no entro a ForosDelWeb. Bueno, mi pregunta es muy simple, por cierto. La sentencia "insert" en MySQL sirve básicamente (yo ...
  #1 (permalink)  
Antiguo 01/11/2009, 16:59
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
INSERT en MySQL

Hola amigos, tanto tiempo que no entro a ForosDelWeb. Bueno, mi pregunta es muy simple, por cierto. La sentencia "insert" en MySQL sirve básicamente (yo la uso para eso) para insertar filas en una tabla (con un id=1, id=2, etc.). El problema es que yo necesitaría ingresar miles de filas (aproximadamente del orden de 10000). Eso, haciéndolo a mano sería así: (1,0,0),(2,0,0),(3,0,0),.....(10000,0,0); (donde 1,2,3, etc., son los campos Id y los 2 ceros son los valores por defecto. Luego se llenarán adecuadamente por los usuarios). Hacerlo a mano es una verdadera locura. Intenté hacerlo con Excel (para repetir los campos con autoincremento, no me deja, por las comas). ¿Hay una forma rápida de hacerlo?
Gracias!
  #2 (permalink)  
Antiguo 01/11/2009, 17:22
 
Fecha de Ingreso: junio-2009
Mensajes: 50
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: INSERT en MySQL

Pues ara mismo me viene a la cabeza que desde tu lenguaje de programación (php, asp..) hagas un for de 10000 con la insert.
__________________
Pasa un buen rato y con humor en:
http://www.putinclub.com
  #3 (permalink)  
Antiguo 01/11/2009, 17:29
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Excelente idea, la pondre en practica, gracias juanillo
  #4 (permalink)  
Antiguo 01/11/2009, 17:36
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Cita:
Iniciado por Juanillloo Ver Mensaje
Pues ara mismo me viene a la cabeza que desde tu lenguaje de programación (php, asp..) hagas un for de 10000 con la insert.
COMO sería el codigo en PHP juanillo?
  #5 (permalink)  
Antiguo 01/11/2009, 17:49
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: INSERT en MySQL

Código PHP:
for($x=$x<=10000 $x++)
   for(
$y=$y<=10000 $y++)
      for(
$z=$z<=10000 $z++){
      
// Aca haces un insert con los valores de $x,$y y $z
      

Eso deberia funcionar.

Saludos.
  #6 (permalink)  
Antiguo 01/11/2009, 17:59
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Cita:
Iniciado por MarioAraque Ver Mensaje
Código PHP:
for($x=$x<=10000 $x++)
   for(
$y=$y<=10000 $y++)
      for(
$z=$z<=10000 $z++){
      
// Aca haces un insert con los valores de $x,$y y $z
      

Eso deberia funcionar.

Saludos.
Ok, pero en realidad creo que la primer linea esta bien (x se autoincrementaria), pero tanto "y" como "z" siempre mantienen el valor de 0 (sería del tipo: (1,0,0), (2,0,0), (n,0,0);)

Luego de ese código, abro la conexion a la base de datos y colocaría

INSERT INTO `mibd` (`col1`, `col2`, `col3`) VALUES (x,y,z)
El problema sería que al final de todas las inserciones tendría que ir el punto y coma. No se si tendría un problema. Gracias

A ver , en conclusion, el codigo sería así:

for($x=0 ; $x<=10000 ; $x++)
$y=0
$z=0
(ACA ABRO LA CONEXION A LA DB)
INSERT INTO `mibd` (`col1`, `col2`, `col3`) VALUES (x,y,z)
(CIERRO CONEXION)

Es correcto????? Gracias
  #7 (permalink)  
Antiguo 01/11/2009, 18:03
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: INSERT en MySQL

Primero q nada no te sirve mucho q abras la conexion y la cierres para cada bucle, no? Entonces mejor abrila, hace el/los bucle/s necesarios y luego cerrala.

Luego, esos 3 for que te puse yo, primero se incrementaria z, hasta llegar a 10000, y luego < volveria a 0, pero y se incrementa en 1...y vuelve a hacer todo de nuevo. Asi hasta terminar con (0,10000,10000). Se suma 1 a x y se vuelve a hacer el bucle, es bastante largo jeje.

El punto y coma lo tenes que poner, proba hacer eso a ver si te funciona!

Saludos.
  #8 (permalink)  
Antiguo 01/11/2009, 18:08
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Cita:
Iniciado por MarioAraque Ver Mensaje
Primero q nada no te sirve mucho q abras la conexion y la cierres para cada bucle, no? Entonces mejor abrila, hace el/los bucle/s necesarios y luego cerrala.

Luego, esos 3 for que te puse yo, primero se incrementaria z, hasta llegar a 10000, y luego < volveria a 0, pero y se incrementa en 1...y vuelve a hacer todo de nuevo. Asi hasta terminar con (0,10000,10000). Se suma 1 a x y se vuelve a hacer el bucle, es bastante largo jeje.

El punto y coma lo tenes que poner, proba hacer eso a ver si te funciona!

Saludos.
ok, pero tiene que terminar en (10000,0,0) no en (0,10000,10000)

En sintesis sería algo así:

Cita:
(ACA ABRO LA CONEXION A LA DB)
for($x=0 ; $x<=10000 ; $x++)
$y=0
$z=0
INSERT INTO `mibd` (`col1`, `col2`, `col3`) VALUES (x,y,z)
(CIERRO CONEXION)
El problema es que no se donde termina el bucle, calculo que cuando se termina todo recien cierra la conexion a la db
  #9 (permalink)  
Antiguo 01/11/2009, 18:40
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Puse el siguiente código (lo hice con while)
Cita:
$y=0;
$z=0;
$x=0;
while ($x<10001);
insert into `bd` (`col1`, `col2`, `col3`) VALUES (x,y,z);
$x++;
Hay un error, exactamente dice esto:

Parse error: syntax error, unexpected T_STRING in ........ on line 19
Que es la linea del "insert into 'bd'
¿Qué puede ser? Gracias
  #10 (permalink)  
Antiguo 01/11/2009, 19:21
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Respuesta: INSERT en MySQL

Hola, no lo pude lograr. Me inserta filas del tipo (0,0,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0), (me inserta 9 creo)
Cita:
$z=0;
$y=0;
for($x=1111; $x<=1113 ; $x++);
mysql_query("INSERT INTO db (col1, col2, col3)
VALUES ('x', 'y', 'z');");
Puse de la 1111 hasta la 1113 para ver que pasaba. Las otras (del 0 a 1110 ya están creadas).
El valor de $x corresponde al id. No se cual es la falla, si me ayudan les agradezco.
  #11 (permalink)  
Antiguo 02/11/2009, 13:04
 
Fecha de Ingreso: junio-2009
Mensajes: 50
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: INSERT en MySQL

Se te olvido poner en la x,y,z el simbolo del dolar en el insert

mysql_query("INSERT INTO db (col1, col2, col3) VALUES ('$x', '$y', '$z');");
__________________
Pasa un buen rato y con humor en:
http://www.putinclub.com
  #12 (permalink)  
Antiguo 02/11/2009, 18:34
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Se que estoy cerca de la solucion, en el siguiente código:
Cita:
$z=0;
$y=0;
$x=1111;
while ($x<1116)
{
mysql_query("INSERT INTO tabla (col1, col2, col3)
VALUES ('$x', '$y', '$z');");
$x++;
Me inserta las filas (1115,0,0),(1114,0,0),(1113,0,0),(1112,0,0),(1111, 0,0)
El problema es que me las inserta al revés o sea:

Col1 Col2 Col3
1109 0 0
1110 0 0 (hasta aca son filas anteriores)
1115 0 0 (aca inserta la fila 1115 en vez de la 1111, esta al reves)
1114 0 0
1113 0 0
1112 0 0
1111 0 0


La pregunta sería como puedo hacer para que las inserte a las filas en el orden correcto. Gracias!
  #13 (permalink)  
Antiguo 02/11/2009, 19:58
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: INSERT en MySQL

Listo, el siguiente código:
Cita:
$z=0;
$y=0;
$x=1;
while ($x<10000)
{
mysql_query("INSERT INTO tabla (col1, col2, col3)
VALUES ('$x', '$y', '$z');");
$x++;
Sirve para generar 10000 filas en una tabla de 3 columnas modificando el primer valor
(1,0,0),(2,0,0),(3,0,0),....(9999,0,0);
Nos vemos. y gracias a todos por la ayuda, que ha sido inestimable.
  #14 (permalink)  
Antiguo 02/11/2009, 20:40
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
Tema movido desde Bases de Datos a PHP
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 22:33.