Foros del Web » Programando para Internet » PHP »

INSERT multiple

Estas en el tema de INSERT multiple en el foro de PHP en Foros del Web. Buenas, siempre he realizado inserciones en mi base de datos MySQL de forma individual, esto es de linea en linea (de producto en producto), pero ...
  #1 (permalink)  
Antiguo 21/03/2003, 03:08
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 22 años, 5 meses
Puntos: 0
INSERT multiple

Buenas, siempre he realizado inserciones en mi base de datos MySQL de forma individual, esto es de linea en linea (de producto en producto), pero ahora necesito insertar X numero de productos a la vez, ¿Podrían decirme cual es el sistema?

Lo hago de este modo:

Código PHP:
  mysql_query("insert into TORNEOS (NOMBRE,FECHA,TIPO,NUMERO,COMENTARIOS)
values ('$nombre','$fecha','$tipo',$num','$comentarios')"
,$link)
or die(
mysql_error());;
    
header("Location: procesado.php"); 
Gracias

PD: El caso verdadero es que mi cliente quiere "ahorrarse" el tener que ir guardando los productos que tiene en su catálogo uno a uno, por lo que le he hecho un formulario con 20 tablas y a su vez con 10 filas cada una, y a su vez con cuatro campos de formulario cada fila. (demasiao ¿no?), para que mi cliente no tenga problemas. Entonces sólo se deben guardar aquellas FILAS que estén rellenas o "activas" y olvidarlos de las filas no rellenas.

¿Hay INSERT, UPDATES, DELETES, dinamicos?
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 21/03/2003 a las 03:49
  #2 (permalink)  
Antiguo 21/03/2003, 08:58
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 23 años
Puntos: 2
Tendiras que crearlos vos (a los "inserts dinamicos") con un if o algo de eso revisando que no este vacio el formulario y haciendo el insert
Yo hago algo parecido:
Código PHP:
$cont '1';
while (
$cont <= $cant_discos){
      
$n_d $nombre_disco["$cont"];
      
$a_d $anio_disco["$cont"];
      
$sql "INSERT INTO disco (nombre_disco, anio_disco, id_banda)"
      
$sql .= "VALUES ('$n_d', '$a_d', '$Id_Banda')";
      
mysql_query ($sql) or die (mysql_error());
      ++
$cont;

me fijo la cantidad de discos y los voy insertando uno por uno se hace un poco mas lento pero si son datos chicos los que tenes que insertar ni se nota.....

Espero que te sirva....

___
JmN
  #3 (permalink)  
Antiguo 21/03/2003, 10:14
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 22 años, 5 meses
Puntos: 0
¿Y como diferencias cada linea del formulario? Si supongamos que tienes 20 tablas con 20 filas cada una y 5 campos de form en cada fila, esto es: 2000 campos de form, tengo que llamar a cada campo distinto o basta que los llame a todos NOMBRE, FECHA... ¿?
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 21/03/2003, 14:42
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Si quieres que todos los nombres te vengan en un array, llama al campo Nombre[x] donde x sea el numero de fila. Lo mismo para el resto de campos.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 21/03/2003, 19:03
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 23 años
Puntos: 2
Como dice josemi

$nombre_disco["$cont"];

el nombre es nombre_disco[0], nombre_disco[1]... despues cuento en forma automatica

ademas si queres podes hacer que la cantidad de campos los ponga el usuario, si pone 5 haces un loop (if, do, etc) que escriba 5 veces el formulario(el text o lo que uses)......

Si queres mas detalles decime...

___
JmN
__________________
JmN
  #6 (permalink)  
Antiguo 12/10/2004, 13:27
 
Fecha de Ingreso: julio-2003
Mensajes: 53
Antigüedad: 21 años, 4 meses
Puntos: 0
Insert multiple.

Cita:
Iniciado por jmn2k1
Como dice josemi

$nombre_disco["$cont"];

el nombre es nombre_disco[0], nombre_disco[1]... despues cuento en forma automatica

ademas si queres podes hacer que la cantidad de campos los ponga el usuario, si pone 5 haces un loop (if, do, etc) que escriba 5 veces el formulario(el text o lo que uses)......

Si queres mas detalles decime...

___
JmN


Hola.

Gracias a esta pregunta pude comenzar a desarrollar un sistema similar, tengo una base de datos con 4 campos (año, mes, stock, bodega), y un formulario con 7 lineas para llenar estos 4 campos ya que tengo hasta 7 bodegas, mi duda es como evito que cuando tenga lineas sin llemar por el usuario no me las ingrese en blanco a la bd.
Si alguien puede guiarme.
Gracias.
  #7 (permalink)  
Antiguo 12/10/2004, 13:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usa empty() para ver si esa variable en concreto tiene valor o no.

www.php.net/empty

Un saludo,
  #8 (permalink)  
Antiguo 12/10/2004, 14:21
 
Fecha de Ingreso: julio-2003
Mensajes: 53
Antigüedad: 21 años, 4 meses
Puntos: 0
mIRA.
Grabo los datos en la bd de la siguiente manera.

<HTML>
<HEAD>
<TITLE>stockbodgrabar.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","root","root");
//Ejecucion de la sentencia SQL
$cont="1";
While ($cont<=7){
$g_a=$grabarbano["$cont"];
$g_m=$grabarbmes["$cont"];
$g_b=$grabarbnbod["$cont"];
$g_s=$grabarbstock["$cont"];
mysql_db_query("gestion","insert into stockbodega (año, mes, bodega, stock) values ('$g_a','$g_m',
'$g_b','$g_s')");
++$cont;
}
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lecturastockbod.php">Visualizar el contenido de la base</a></div>
</BODY>
</HTML>

Cuando uso el empty?.

Gracias
  #9 (permalink)  
Antiguo 12/10/2004, 14:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En el bucle while() donde obtienes tus $g_a .. $g_m .. etc .. puedes hacer un condicional tipo:

Código PHP:
if (!emtpy($g_a) && !empty($g_m) .. etc){
// el mysql_db_query que haces para crear tu registro.

Es decir . .si $g_a y $g_m .. etc NO están vacias (al menos hay algún campo con valor) .. entonces .. crea el registro.

Un saludo,

Última edición por Cluster; 12/10/2004 a las 14:34
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:37.