Foros del Web » Programando para Internet » PHP »

Insertar 1000 filas de una vez

Estas en el tema de Insertar 1000 filas de una vez en el foro de PHP en Foros del Web. Quisiera algun script para añadir 1000 campos a una tabla o crear una de 1000 campos ( masomenos) de una vez sola, porque andar teninedo ...
  #1 (permalink)  
Antiguo 23/02/2009, 14:49
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Insertar 1000 filas de una vez

Quisiera algun script para añadir 1000 campos a una tabla o crear una de 1000 campos ( masomenos) de una vez sola, porque andar teninedo que crear 1000 campos e ir uno x uno poniendo el numero de campo y el caracter mazimo canza muchisimo.
Gracias!
  #2 (permalink)  
Antiguo 23/02/2009, 14:55
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Insertar 1000 filas de una vez

Prueba guardando todas esas sentencias, separadas por ";", en una variable.
  #3 (permalink)  
Antiguo 23/02/2009, 14:57
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Me puedes explicar mas? :s
  #4 (permalink)  
Antiguo 23/02/2009, 15:15
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Insertar 1000 filas de una vez

El MySQL o SQL separa las sentencias por ;. Entonces te creas una variable en la cual vas almacenando estas sentencias. y una vez que las tengas haces la consulta a la base de datos.

Código php:
Ver original
  1. $sql = "SELECT nombre FROM alumnos;
  2.        SELECT notas FROM materias;
  3.        SELECT assignaturas FROM profes;";
  4. $resultado = mysql_fetch_assoc($sql);

La idea seria hacer algo como eso... tengo que decir que no lo he probado nunca, asi que no se como seria el resultado exactamente...
  #5 (permalink)  
Antiguo 23/02/2009, 15:24
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Si, eso ya se, pero no es lo que quiero x.x
Has entendido mal..
Mira:
Yo tengo la tabla inventario, y quiero que esa tabal tenga
objeto1
objeto2
hasta el 1000 , pero escribirlos todos es feito x.x
como podria hacer para que automaticamente se creen todos?
  #6 (permalink)  
Antiguo 23/02/2009, 15:31
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Insertar 1000 filas de una vez

En un for un while, etc...

Código php:
Ver original
  1. <?php
  2. $sql = "";
  3.  
  4. for($ind = 0;$ind < 1000;$ind++)
  5. {
  6.     $sql .= "SELECT objeto".$ind." FROM tabla;";
  7. }
  8.  
  9. echo $sql;
  10. ?>
  #7 (permalink)  
Antiguo 23/02/2009, 15:33
 
Fecha de Ingreso: enero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Insertar 1000 filas de una vez

Código PHP:
mysql_connect....
mysql_select_db...

for (
$i 0$i<1000$i++){
  
$sql 'INSERT INTO tabla (nombre) VALUES ("objeto '.$i.'"');
  
mysql_query($sql);

  #8 (permalink)  
Antiguo 23/02/2009, 22:43
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Joder x.x
Pero que no me entienden x.x
Pues, mire
Tengo una base de datos MYSQL
y quiero crear una tabla con estos campos:
objeto1
objeto2
etc.. hasta el mil.
Pero crear un campo x uno es muy dificil, ya que se pierde mucho tiempo!!
Hay alguna forma de c rear muchos? x.x
  #9 (permalink)  
Antiguo 23/02/2009, 22:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Insertar 1000 filas de una vez

Cita:
Pero que no me entienden x.x
Cita:
Quisiera algun script para añadir 1000 campos
¿Te refieres a columnas? Entonces para la proxima explicate mejor y ahorranos el tiempo.

Cita:
y quiero crear una tabla con estos campos:
objeto1
objeto2
Hmmm ... Solo tengo algo que decir: "WTF"
¿Una tabla con 1,000 columnas? Quieras lo que quieras hacer, apuesto a que te hacen falta conocimientos de base de datos relacionales.
Es algo INHUMANO hacer una tabla con 1,000 columnas, pero si eso es lo que quieres, el concepto que te han dicho es el MISMO lo unico que en vez de ir concatenando a un SELECT o INSERT, hazlo dentro de el CREATE TABLE

Código PHP:
<?php
$consulta 
"CREATE TABLE barbaridad (";
for(
$i=1$i<=1000$i++) {
$consulta .= "objeto$i varchar(255) default null,";
}
$consulta substr($consulta0, -1); //esto para eliminar la ultima "," y que no de error la consulta
$consulta .= ");";
mysql_query($consulta);
?>
  #10 (permalink)  
Antiguo 23/02/2009, 23:02
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

¡¡Muchas gracias!!
Es que un inventario tiene que tener 1000 objetos x.x
  #11 (permalink)  
Antiguo 23/02/2009, 23:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Insertar 1000 filas de una vez

Cita:
Es que un inventario tiene que tener 1000 objetos x.x
Cita:
Quieras lo que quieras hacer, apuesto a que te hacen falta conocimientos de base de datos relacionales.
Checked ...
  #12 (permalink)  
Antiguo 23/02/2009, 23:16
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Solo una cosa mas
Hize esto:
<?php
session_start();
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_Noone = "mysql5.000webhost.com";
$database_Noone = "sssssssssssssss";
$username_Noone = "assssssssssssal";
$password_Noone = "3ssssssssss";
$Noone = mysql_pconnect($hostname_Noone, $username_Noone, $password_Noone) or trigger_error(mysql_error(),E_USER_ERROR);

$consulta = "CREATE TABLE inventario (";
for($i=1; $i<=1000; $i++) {
$consulta .= "objeto$i varchar(255) default null,";
}
$consulta = substr($consulta, 0, -1); //esto para eliminar la ultima "," y que no de error la consulta
$consulta .= ");";
echo mysql_errno($Noone) . ": " . mysql_error($Noone) . "\n" ;
?>
Y me da este error:
0:
  #13 (permalink)  
Antiguo 24/02/2009, 00:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Insertar 1000 filas de una vez

Pues porque no hay error alguno. mysql_errno devuelve 0 cuando no hay errores.
  #14 (permalink)  
Antiguo 24/02/2009, 08:22
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Y porque puede ser que la accion no se cumple?
(Es decir, ninguna tabla es creada en mi base de datos)
  #15 (permalink)  
Antiguo 24/02/2009, 08:29
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Insertar 1000 filas de una vez

for($i=1; $i<=1000; $i++) {
  #16 (permalink)  
Antiguo 24/02/2009, 08:31
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

for($i=1; $i<=1000; $i++) { Tu codigo
for($i=1; $i<=1000; $i++) { Mi codigo

No hay diferencia alguna entre las dos lineas
  #17 (permalink)  
Antiguo 24/02/2009, 10:01
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

Falta la funcion que ejecuta el SQL:

mysql_query($consulta);
  #18 (permalink)  
Antiguo 24/02/2009, 10:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar 1000 filas de una vez

Desconozco el limite de columnas de una tabla, pero creo que son máximo 200 campos VARCHAR... no te va a dejar hacerlo con mil columnas...

Por otro lado dices que es una bdd de 1,000 articulos, no te referiras a una tabla con 1,000 rows que representan el inventario?, ya que dudo que debas de guardar 1,000 datos de una sola entrada... en cuyo caso es mejor tener una relación 1:m..

Saludos
  #19 (permalink)  
Antiguo 24/02/2009, 10:51
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Probaré
GatorV;
No entendi mucho u.u
Yo quiero una tabla que tenga el inventario de un usuario y que ese usuario tenga un macimo de 1000 obj.

Cita:
Iniciado por Psychopsia Ver Mensaje
Falta la funcion que ejecuta el SQL:

mysql_query($consulta);
Claro!!
Pero que tonto que soy

Ahora me da este error:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE inventario (objeto1 varchar(255) default null,objeto2 varchar(255) ' at line 1
Sin embargo, no veo ningun error de sintaxis.

Estube revisando, no encuentro naa x.x

Última edición por GatorV; 24/02/2009 a las 11:53
  #20 (permalink)  
Antiguo 24/02/2009, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar 1000 filas de una vez

En ese caso sí deberías hacer una relación 1:m, con dos tablas, ya que de la forma que lo pones no lo vas a poder lograr, como te comento el motor de BDD solo te permite máximo 200 columnas VARCHAR en una tabla.

Saludos
  #21 (permalink)  
Antiguo 24/02/2009, 12:35
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Insertar 1000 filas de una vez

y me puedes explicar 1 poco mas? n.n
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 20:48.