Foros del Web » Programando para Internet » PHP »

insertar 10.000 campos a una tabla, como?

Estas en el tema de insertar 10.000 campos a una tabla, como? en el foro de PHP en Foros del Web. quisiera insertar 10mil campo a una tabla, obvio que a mano me vuelvo loco... seria que en cada campo se grave la id=1 y nombre=0001 ...
  #1 (permalink)  
Antiguo 06/07/2013, 15:09
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
insertar 10.000 campos a una tabla, como?

quisiera insertar 10mil campo a una tabla, obvio que a mano me vuelvo loco...

seria que en cada campo se grave la id=1 y nombre=0001 y todo sea autoincrement..
terminaria en la id=10000 nombre=10000,,,

Como puedo hacer esto, creo que en cada tabla puede haber un solo autoincrement...
  #2 (permalink)  
Antiguo 06/07/2013, 16:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: insertar 10.000 campos a una tabla, como?

10.000 campos o registros ? dudo que alguna tabla tenga 10.000 campos
__________________
Salu2!
  #3 (permalink)  
Antiguo 06/07/2013, 16:25
Avatar de sistemaparley  
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

Debes de dar mayor información a lo que te refieres.. Porque si tiene un archivo .sql con los 10MIL campos creados lo único que tienes que hacer es subirlo desde phpMyAdmin.

Tambien debes fijarte cuanto pesa el archivo .sql y si el phpMyAdmin lo Soporta para que aumentes la capacidad de MB a subir tu phpMyAdmin..
  #4 (permalink)  
Antiguo 06/07/2013, 16:39
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

claro tengo una tabla que se llama numeros y quiero hacer 10mil registros..
cada campo tiene un id y un nombre quisiera que los registros arranquen con el nombre0001 y id1.. asi hasta el 10mil...
  #5 (permalink)  
Antiguo 06/07/2013, 16:47
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: insertar 10.000 campos a una tabla, como?

me da terror preguntar como para que esto pero soy curioso y me gustaría saber??, sin embargo puedes hacer algo como esto
Código PHP:
Ver original
  1. for($i = 1; $i <= 10000; $i++) {
  2.     echo $i . " " . sprintf("%1$05d", $i);
  3.     echo "<br />";
  4. }
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 06/07/2013, 17:20
Avatar de sistemaparley  
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

En realidad como para que podrá ser útil eso.. :O
  #7 (permalink)  
Antiguo 06/07/2013, 18:05
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

es para hacer una quiniela online... entons cada usuario clickea un numero de esos 10mil,
y se le graba en la base de datos que usuario juego un numero equis...
entons necesito 10mil campos en una tabla, jejeje
  #8 (permalink)  
Antiguo 06/07/2013, 18:12
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por dario_rey_musico Ver Mensaje
es para hacer una quiniela online... entons cada usuario clickea un numero de esos 10mil,
y se le graba en la base de datos que usuario juego un numero equis...
entons necesito 10mil campos en una tabla, jejeje
tu diseño de la base de datos está mal, 10000 campos uno por numero es incorrecto, la verdad tienes que hacer bien el análisis de que es lo que quieres o necesitas en el sistema y ver lo que estas diciendo.

Has el planteamiento de como hiciste para crear una tabla con 10000 campos y revisa en que esta fallando
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 06/07/2013, 18:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por dario_rey_musico Ver Mensaje
es para hacer una quiniela online... entons cada usuario clickea un numero de esos 10mil,
y se le graba en la base de datos que usuario juego un numero equis...
entons necesito 10mil campos en una tabla, jejeje
Bien diseñado serian una tabla para usuarios, otra para los numeros,... pero simplificando al maximo seria una tabla asi:

Cita:
Id (NOT NULL, INDICE, pero no autoinc)
nombre varchar [50]
apellido varchar [50]
documento (int)
tipo_doc (varchar [10])
Ahi vas creando los 10.000 registros a medida que van cojiendo los numeros.

PD:

a) El ID no se debe repetir asi que debe ser UNIQUE
b) Si usas una sola tabla como te he colocado, debes ingresar los datos de los clientes una y otra vez por registro

Es un EJEMPLO (incompleto) para que te des cuenta como te decia mas arriba que no son 10.000 campos, ya un poco mas correcto seria hacer esto:

Cita:
// Tabla Usuarios

id_usuario, autoincremental
nombre varchar [50]
apellido varchar [50]
documento (int)
tipo_doc (varchar [10])
telefono (int)
Cita:
// Tabla (numeros) sorteados

id_sorteado (autoincremental, NOT NULL)
tipo_quinela int
fecha_compra
fecha_juega
numero_sorteado
y marcas sea UNIQUE la combinacion entre "numero_sorteado" y "fecha_juega" y "tipo_quinela"
__________________
Salu2!

Última edición por Italico76; 06/07/2013 a las 18:25
  #10 (permalink)  
Antiguo 07/07/2013, 18:49
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

yo quisiera poner los 10mil campos...
otra cosa como se puede poner un mismo valor a todas las filas,, por ejemplo la fila precio,,, que seria el precio de los 10mil numeros,, yo quisiera ponerle un mismo valor por ejemplo 1, como se hace eso
  #11 (permalink)  
Antiguo 07/07/2013, 18:58
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: insertar 10.000 campos a una tabla, como?

Listo... sino quieres escuchar... haz la tuya pon los 10.000 campos y nos cuentas si es posible manejarlos
__________________
Salu2!
  #12 (permalink)  
Antiguo 07/07/2013, 21:10
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: insertar 10.000 campos a una tabla, como?

Hola,

Cita:
Iniciado por dario_rey_musico Ver Mensaje
... 10mil campo a una tabla, ...
Cita:
Iniciado por dario_rey_musico Ver Mensaje
... una tabla que se llama numeros y quiero hacer 10mil registros..
Cita:
Iniciado por dario_rey_musico Ver Mensaje
yo quisiera poner los 10mil campos..
Primero que todo vas a tener que explicar de qué estas escribiendo. Un campo no es lo mismo que un registro. Tener 10,000 campos en una tabla es, como decirlo, está mal, ni siquiera la base de datos te permite hacerlo, y por algo será.

Suponiendo que quieras 10,000 registros entonces es más lógico y está bien, ya Italico76 te mostró un ejemplo, solamente tienes que interpretar sus instrucciones y escribir un programa.

Cita:
Iniciado por Italico76 Ver Mensaje
Listo... sino quieres escuchar... haz la tuya pon los 10.000 campos y nos cuentas si es posible manejarlos
Técnicamente no es posible, por lo menos en MySQL, el límite 'aproximado' es de 4,192 campos.

Saludos,
  #13 (permalink)  
Antiguo 07/07/2013, 21:16
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por HackmanC Ver Mensaje

Técnicamente no es posible, por lo menos en MySQL, el límite 'aproximado' es de 4,192 campos.

Saludos,
Me imaginaba
__________________
Salu2!
  #14 (permalink)  
Antiguo 08/07/2013, 18:35
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

claro yo me exprese mal,, serial 10mil filas,,, serial 10mil ids...
yo la tabla usuario ya la ice y la tabla numeros tambien, lo que quiero es 10mil filas ... 10milids, asi se que id juega cada usuario...
  #15 (permalink)  
Antiguo 08/07/2013, 18:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: insertar 10.000 campos a una tabla, como?

es que entonces simplemente con un for como el que te comente al principio debería de ser capaz de resolverlo
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #16 (permalink)  
Antiguo 08/07/2013, 18:55
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por dario_rey_musico Ver Mensaje
claro yo me exprese mal,, serial 10mil filas,,, serial 10mil ids...
yo la tabla usuario ya la ice y la tabla numeros tambien, lo que quiero es 10mil filas ... 10milids, asi se que id juega cada usuario...
vamos a pensar un poco entre todos.

si bien he leído, necesitas utilizar cualquier número entre 00001 y 10.000 no?

necesitas que dos usuarios no puedan escoger el mismo número no?

bueno, puedes generar 10000 registros con números con un simple bucle while o for, como gustes y esperar a que el ordenador no se cuelgue o puedes hacerlo con eficiencia.

crea en php una función o clase que genere un número aleatorio con la función nativa mt_rand para que el usuario pueda obtener un número al azar, si decide quedarse con ese número consulta en la base de datos si el número que el usuario escogió está ya repetido. por otro lado deja que el usuario escriba el número que desee y comprueba si ya está repetido entre los usuarios que ya escogieron número.

cualquier cosa que te evite tener 10000 registros en una tabla que cada usuario consultará como mínimo una vez, haría la aplicación realmente lenta.

si aún así quieres registrar 10000 números ya te digo, usa un bucle y suerte.
  #17 (permalink)  
Antiguo 08/07/2013, 20:04
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por guardarmicorreo Ver Mensaje
... vamos a pensar un poco entre todos. ...


Cita:
Iniciado por guardarmicorreo Ver Mensaje
necesitas que dos usuarios no puedan escoger el mismo número no?

bueno, puedes generar 10000 registros con números con un simple bucle while o for, como gustes y esperar a que el ordenador no se cuelgue o puedes hacerlo con eficiencia.

crea en php una función o clase que genere un número aleatorio con la función nativa mt_rand para que el usuario pueda obtener un número al azar, si decide quedarse con ese número consulta en la base de datos si el número que el usuario escogió está ya repetido. por otro lado deja que el usuario escriba el número que desee y comprueba si ya está repetido entre los usuarios que ya escogieron número.

cualquier cosa que te evite tener 10000 registros en una tabla que cada usuario consultará como mínimo una vez, haría la aplicación realmente lenta.
...
Técnicamente la mejor forma es guardar los 10,000 registros en la base de datos. Tanto sea que el sistema genere el número al azar como que la persona pueda seleccionar el número de forma manual. La situación es la siguiente,

1. El sistema genera el número de forma automática.

El sistema genera un número de entre los números que queden libres, es decir, expresado en terminos pseudo SQL: "SELECT numero WHERE comprado = FALSE ORDER BY RAND() LIMIT 1". Así consecutivamente hasta que el usuario se decida por el número que desea comprar. El hecho es que solamente se le va a mostrar una opción entre los que no han sido comprados. Imagina si dice 8,586 y yo selecciono "comprar" y el sistema me dice "no puede comprar ese número porque ya fue comprado". Mi pregunta sería "¿entonces para que me lo ofrece?".

2. El usuario selecciona un número manualmente.

El usuario ingresa un número manualmente y el sistema busca entre los 10,000 si ese ya fue comprado. Si ya fue comprado pues tendrá que optar por otro número y así sucesivamente hasta que el número seleccionado sea válido. Imágina que están vendidos 9,999 números, ¿cuantas veces tendría que probar para pegarle al único que hace falta? El sistema debería mostrar los números válidos y poder seleccionarlos de una lista o algo parecido, ya sea cuando falten pocos números o siempre.

En cualquiera de los dos casos, una base de datos con un índice en el campo 'número' y en el campo 'comprado' será sumamente eficiente con 10,000 números solamente, aunque la demanda de números sea muy alta, por supuesto el programa deberá optimizar las consultas para hacer uso eficiente de los índices y no realizar mas consultas de las necesarias.

Cita:
Iniciado por guardarmicorreo Ver Mensaje
... si aún así quieres registrar 10000 números ya te digo, usa un bucle y suerte.
Exactamente, básicamente tendría que utilizar la respuesta anterior,

Cita:
Iniciado por carlos_belisario Ver Mensaje
me da terror preguntar como para que esto pero soy curioso y me gustaría saber??, sin embargo puedes hacer algo como esto
Código PHP:
Ver original
  1. for($i = 1; $i <= 10000; $i++) {
  2.     echo $i . " " . sprintf("%1$05d", $i);
  3.     echo "<br />";
  4. }
Pseudocódigo:

Código PHP:
Ver original
  1. for($i = 1; $i <= 10000; $i++) {
  2.     mysqli_query($connection, "insert into tabla1 (número, comprado) values ($i, false)");
  3. }

Saludos

Última edición por HackmanC; 08/07/2013 a las 20:12
  #18 (permalink)  
Antiguo 08/07/2013, 20:14
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: insertar 10.000 campos a una tabla, como?

Cita:
Iniciado por HackmanC Ver Mensaje




Técnicamente la mejor forma es guardar los 10,000 registros en la base de datos. Tanto sea que el sistema genere el número al azar como que la persona pueda seleccionar el número de forma manual. La situación es la siguiente,

1. El sistema genera el número de forma automática.

El sistema genera un número de entre los números que queden libres, es decir, expresado en terminos pseudo SQL: "SELECT numero WHERE comprado = FALSE ORDER BY RAND() LIMIT 1". Así consecutivamente hasta que el usuario se decida por el número que desea comprar. El hecho es que solamente se le va a mostrar una opción entre los que no han sido comprados. Imagina si dice 8,586 y yo selecciono "comprar" y el sistema me dice "no puede comprar ese número porque ya fue comprado". Mi respuesta sería "¿entonces para que me lo ofrece?".

2. El usuario selecciona un número manualmente.

El usuario ingresa un número manualmente y el sistema busca entre los 10,000 si ese ya fue comprado. Si ya fue comprado pues tendrá que optar por otro número y así sucesivamente hasta que el número seleccionado sea válido. Imágina que están vendidos 9,999 números, ¿cuantas veces tendría que probar para pegarle al único que hace falta? El sistema debería mostrar los números válidos y poder seleccionarlos de una lista o algo parecido, ya sea cuando falten pocos números o siempre.

En cualquiera de los dos casos, una base de datos con un índice en el campo 'número' y en el campo 'comprado' será sumamente eficiente con 10,000 números solamente, aunque la demanda de números sea muy alta, por supuesto el programa deberá optimizar las consultas para hacer uso eficiente de los índices y no realizar mas consultas de las necesarias.



Exactamente, básicamente tendría que utilizar la respuesta anterior,



Pseudocódigo:

Código PHP:
Ver original
  1. for($i = 1; $i <= 10000; $i++) {
  2.     mysqli_query($connection, "insert into tabla1 (número, comprado) values ($i, false)");
  3. }

Saludos
era solo darle una idea fundamental de que ingresar los 10000 números es totalmente erróneo.

fíjate en lo que te puse en negrita.

no es necesario ofrecer números ya comprados, simplemente ofrece los números que queden libres:

genera un número aleatorio, si existe en la base de datos genera otro y así sucesivamente hasta que encuentre un número libre ofreciendo varios números y el usuario solo lo tiene que comprar.

por otro lado, muchas personas prefieren escoger directamente su número, cuantas veces tenga que probar es problema del usuario no de los números ya comprados ni del programador.

en un caso u otro solo tiene que comprobar que un número ya fué comprado o no, de la otra manera constantemente tendrá que trabajar con 10000 números hasta que el usuario escoja en una lista paginada su número eso es realmente ineficiente ¿no crees?
  #19 (permalink)  
Antiguo 08/07/2013, 20:16
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: insertar 10.000 campos a una tabla, como?

ya el script de que cada usuario elija un numero que no este elegido antes lo ice, ya lo fabrique,,, obvio que mis ensayos an sido con 100 registros osea 100 números,,
bueno voy a leer sobre los bucles while o for para ver si puedo hacer los 10mil registros...
  #20 (permalink)  
Antiguo 08/07/2013, 20:41
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: insertar 10.000 campos a una tabla, como?

Hola,

Cita:
Iniciado por guardarmicorreo Ver Mensaje
era solo darle una idea fundamental de que ingresar los 10000 números es totalmente erróneo. ...
Personalmente no creo que sea erróneo, pero dependerá también de las necesidades específicas y de otros factores que posiblemente no fueron comentados en este hilo.

Cita:
Iniciado por guardarmicorreo Ver Mensaje
genera un número aleatorio, si existe en la base de datos genera otro y así sucesivamente hasta que encuentre un número libre ofreciendo varios números y el usuario solo lo tiene que comprar.
¿Has probado ese algoritmo alguna vez? Su funcionamiento es exponencial, en tu caso posiblemente se realicen cientos de consultas a la base de datos para saber "que numero no está tomado" cuando ya existan el 50% de los números vendidos. Y eso es ineficiente, con el hecho que exista la posibilidad que haga mas de tres consultas, con ese objetivo, creo que es mas que suficiente para optar por una tabla bien indexada con 10,000 registros.

Cita:
Iniciado por guardarmicorreo Ver Mensaje
por otro lado, muchas personas prefieren escoger directamente su número, cuantas veces tenga que probar es problema del usuario no de los números ya comprados ni del programador.
Sigue siendo ineficiente, si no es problema del programador, el usuario estará probando a ingresar números y su crecimiento de pruebas va a ser exponencial, igual que el problema anterior. Si ya están comprados el 90% de los números será de ver cuantas pruebas tendrá que hacer el usuario antes de decantarse por "no comprar el número" por problemas de usabilidad del sitio.

Cita:
Iniciado por guardarmicorreo Ver Mensaje
en un caso u otro solo tiene que comprobar que un número ya fué comprado o no, ...
¿Solamente tiene que comprobar? .. pero como explique anteriormente el problema es ¿cuantas veces?, si estuvieran comprados el 75% de los números no me quiero imaginar cuantas veces vas a tener que consultar la base de datos para generar un número "no comprado".

Cita:
Iniciado por guardarmicorreo Ver Mensaje
... hasta que el usuario escoja en una lista paginada su número eso es realmente ineficiente ¿no crees?
Nadie habló de paginado, un simple <select> con un <input text> y un poco de javascript van a ser la magia de "no realizar mas de las consultas necesarias a la base de datos" en un sitio usable.

Pero al final dependerá de las necesidades específicas de dario_rey_musico.

Cita:
Iniciado por dario_rey_musico Ver Mensaje
bueno voy a leer sobre los bucles while o for para ver si puedo hacer los 10mil registros...
El ejemplo de carlos_belisario te podrá ser muy útil.

Saludos,

Etiquetas: campos, tabla
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 00:36.