Foros del Web » Programando para Internet » PHP »

Insertar varios registros en una BD MySQL simultáneamente

Estas en el tema de Insertar varios registros en una BD MySQL simultáneamente en el foro de PHP en Foros del Web. Hola a todos. Desde una página, y mediante un Insert into , inserto registros en una base de datos MySQL. Lo que quiero hacer es ...
  #1 (permalink)  
Antiguo 22/06/2005, 12:32
Avatar de CNL
CNL
 
Fecha de Ingreso: abril-2002
Ubicación: Barcelona
Mensajes: 897
Antigüedad: 22 años
Puntos: 1
Insertar varios registros en una BD MySQL simultáneamente

Hola a todos.

Desde una página, y mediante un Insert into, inserto registros en una base de datos MySQL. Lo que quiero hacer es insertar varios registros a la vez, diferentes registros. Para ello, quiero que me salga el mismo formulario tantas veces como registros quiera insertar, y que cuando le de la orden, los inserte todos al mismo tiempo.

Para hacer la inserción de un registro, tengo lo siguiente:

Código PHP:
<?
if($Submit)
{
$sql"insert into TABLA (campo1,campo2) values ('$campo1','$campo2')";
mysql_query($sql,$link);
}
?>

<FORM ACTION="pagina.php" METHOD="post">
<INPUT TYPE="TEXT" NAME="campo1">
<INPUT TYPE="TEXT" NAME="campo2">
<BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Insertar">
</TD>
</TR>
</TABLE>
</FORM>
Esto me lo hace perfectamente. ¿Pero si quiero insertar más de 1? He visto un post similar de hace varios años, pero no me ha quedado demasiado claro... he hecho una cosa así:

Código PHP:
<?
for ($n=0$n<=5$n++) 
{
if(
$Submit)
{
$sql"insert into TABLA (campo1,campo2) values ('$campo1[$n]','$campo2[$n]')";
mysql_query($sql,$link);
}
}
?>

<FORM ACTION="pagina.php" METHOD="post">
<INPUT TYPE="TEXT" NAME="campo1[]">
<INPUT TYPE="TEXT" NAME="campo2[]">
<BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Insertar">
</TD>
</TR>
</TABLE>
</FORM>
Esto lo que hace es insertar 6 registros, pero sólo 1 lo rellena, con los datos del formulario (que sólo se muestra una vez). ¿Cómo lo hago para que el formulario se muestre 6 veces, e inserte los registros con todos los datos correctamente?

Saludos
  #2 (permalink)  
Antiguo 23/06/2005, 03:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
http://www.forosdelweb.com/showpost....47&postcount=8
http://www.forosdelweb.com/showpost....2&postcount=13

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 23/06/2005, 15:59
 
Fecha de Ingreso: agosto-2004
Mensajes: 258
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta

Jam1138, esta bueno tu post, pero como harias si un registro tiene varios campos, teniendo en cuenta que digamos tienes 5 registros......
  #4 (permalink)  
Antiguo 23/06/2005, 21:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
¿?... habría que ser más explicativos, no te entendí pero adivinando un poco....
http://www.forosdelweb.com/showpost....1&postcount=20
http://www.forosdelweb.com/showpost....3&postcount=24
... supongo te servirá... podrías "imaginarte" (para que lo apliques a tu caso) que cada listbox es un grupo de elementos del formulario y sus options son dichos elementos... ... o viceversa.... insisto, adivinando un poco. Quizá te convenga leer el thread completo, sino mal recuerdo se planteó otra cosa... y por cuestiones de explicaciones si fuese necesario...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 26/06/2005, 08:34
Avatar de CNL
CNL
 
Fecha de Ingreso: abril-2002
Ubicación: Barcelona
Mensajes: 897
Antigüedad: 22 años
Puntos: 1
Gracias a todos, pero ya resolví el problema, gracias al código que me proporcionó otro usuario de este foro.

El código es este:

Código PHP:
<FORM ACTION="pagina.php" METHOD="post"> 
Insertar: <input type=Text name=fields> <input type=submit name=change value=Cambiar>
<?
if (is_numeric($_POST['fields'])){$limit=$_POST['fields'];}else{$limit=1;}

if(
$Submit){
for (
$a=0;$a<$limit;$a++){$sql="insert into TABLA (campo1,campo2) values ('".$_POST['campo1'][$a]."','".$_POST['campo2'][$a]."')";mysql_query($sql,$link);}
}

for (
$a=0;$a<$limit;$a++){echo "<INPUT TYPE='TEXT' NAME='campo1[]'><br><INPUT TYPE='TEXT' NAME='campo2[]'><br><br>";}
?>

<BR> 
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Insertar"> 

</TD> 
</TR> 
</TABLE> 
</FORM>
Saludos
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 06:48.