Foros del Web » Programando para Internet » PHP »

Insertar muchos datos en una tabla mysql

Estas en el tema de Insertar muchos datos en una tabla mysql en el foro de PHP en Foros del Web. Hola a todos. Tengo una tabla hecha con mysql con 5 columnas y me gustaría crear una página con un formulario que permitiera insertar varias ...
  #1 (permalink)  
Antiguo 30/10/2004, 07:59
ct
 
Fecha de Ingreso: mayo-2002
Mensajes: 109
Antigüedad: 15 años, 7 meses
Puntos: 0
Insertar muchos datos en una tabla mysql

Hola a todos.

Tengo una tabla hecha con mysql con 5 columnas y me gustaría crear una página con un formulario que permitiera insertar varias filas de datos (varias entradas a mi tabla). ¿Cómo puedo hacerlo? ¿Dónde puedo encontrar información para hacerlo paso a paso?

Muchas gracias
Saludos
  #2 (permalink)  
Antiguo 30/10/2004, 09:02
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 13 años, 3 meses
Puntos: 1
Primero tienes que enlazar tu base de datos para que hagas tu consulta. y lo recoges en un array.

Archivo Config.php
<?php
$dbhost = "localhost" ;
$dbuser = "root" ;
//$dbpass = "contraseña" ;
$db = "usuarios" ;
$conectar = mysql_connect($dbhost,$dbuser) ;
mysql_select_db($db,$conectar) ;
?>


Consulta.php

<?php
//Conectamos con nuestra base de datos.
include("config.php");

$consulta1=mysql_query("SELECT id, desc1_noti, fecha_noti FROM noticias order by id ",$conectar);

?>
<table width="600" border="2" cellpadding="3" cellspacing="0">
<?php while($campos=mysql_fetch_array($consulta1))
{ ?>
<tr>
<th width="103" bgcolor="#B6C4D4" scope="col"><span class="Estilo9"><?php echo $campos["fecha_noti"]; ?></span></th>
<th width="440" class="Estilo2" scope="col"><div align="left" class="Estilo10"><?php echo $campos["desc1_noti"]; ?> </div></th>
<th width="29" class="Estilo2" scope="col"><span class="Estilo10"><?php echo "<a href=\"noticia_puntual.php?cod=".$campos["id"]."\" >".'<img src="../Imagenes/boton_mas.jpg" width="9" height="9" border="0" alt="Mes Informaci&oacute;">'; ?></span></th>
</tr>
<?php }?>
</table>

Eso es todo.

Espero que te sirva.
  #3 (permalink)  
Antiguo 30/10/2004, 09:34
ct
 
Fecha de Ingreso: mayo-2002
Mensajes: 109
Antigüedad: 15 años, 7 meses
Puntos: 0
Creo que no me he explicado bien.

Lo que yo quiero es insertar datos en mi base de datos. Para ello en una página creo un formulario con múltiples filas, para poder insertar muchos datos a la vez (rellenar varias filas de mi bd). Lo que quiero es insertar los datos de los jugadores de un equipo de baloncesto, que son su número, nombre, posición de juego y edad, por lo que he creado una página con un formulario que contiene 12 filas (para los 12 jugadores) y las 4 columnas. Mi problemas es que no se cómo llamar a cada elemento del formulario y cómo procesar la información para que se introduzca en mi base de datos (en la página insertar.php a la que llama mi formulario).

Espero haberlo explicado mejor ahora.

Muchas gracias
  #4 (permalink)  
Antiguo 31/10/2004, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues en ese caso puedes hacer dos cosas:

1) llamas a tus N <input ..> que tienes cada uno con un nombre distinto:

<input type="text" name="nombre_1">
<input type="text" name="numero_1">

<input type="text" name="nombre_2">
<input type="text" name="numero_2">

Etc ...

Y en PHP tendrás tus $nombre_1 .. $nombre_2 ... $numero_1 .. etc (mejor en $_POST o $_GET .. arrays).

2) Usando arrays como nombres de tus elementos del formulario:

<... name="nombre[]" ....>
<... name="numero[]" ....>

para que en tu script PHP recibas un array por nombre. Usando un bucle for() accedes a cada elemento de tu array para hacer tu INSERT a tu BD correspondiente en el bucle.
Código PHP:
for ($x=0$x<=count($_POST['nombre']; $x++){
$sql="INSERT INTO tabla (id,nombre,numero .. etc ...) VALUES ('',".$_POST['nombre'][$x]."','".$_POST['numero'][$x]."......";
mysql_query($sql);

Un saludo,
  #5 (permalink)  
Antiguo 01/11/2004, 18:41
ct
 
Fecha de Ingreso: mayo-2002
Mensajes: 109
Antigüedad: 15 años, 7 meses
Puntos: 0
Hola Cluster, muchas gracias por tu respuesta.

Tengo un problema al escribir mi instrucción en la página PHP. Es un 'parse error' debido a las comas y los '. Yo pongo lo siguiente:

for ($x=0; $x<=count($_POST['nombre']); $x++){
$sql1="my_bd","'INSERT INTO jugadores (id_equipo,nombre,numero,posicion,año) VALUES ('$id',".$_POST['nombre'][$x]."','".$_POST['numero'][$x]."','".$_POST['posicion'][$x]."','".$_POST['año'][$x].'")"';
mysql_query(($sql1);
}

La verdad es que todavía no controlo mucho la sintaxis php y me estoy haceindo un lío, pero tengo algo de prisa por terminar esto y te agradecería si me pudieras decir dónde está el error (o los errores).
Un saludo
  #6 (permalink)  
Antiguo 01/11/2004, 18:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Pues si utilizas un editor que te coloree el código, posiblemente verías esos errores con mayor facilidad.
El SQL es SQL puro... no tienes que ponerle ese "my_bd, " delante.
Debería quedar así:
Código PHP:
$sql1="INSERT INTO jugadores (id_equipo, nombre, numero, posicion, año) VALUES ('$id', '".$_POST['nombre'][$x]."', '".$_POST['numero'][$x]."', '".$_POST['posicion'][$x]."', '".$_POST['año'][$x]."')"
mysql_query($sql1) or die("Error en <b>$sql1</b> : ".mysql_error()); 
Si te diera algún error avisa...
Si en el momento de la conexión no has seleccionado la base de datos con mysql_select_db("my_db", $conexion);... hazlo.
Lo más probable es que hayas intentado hacer un mysql_db_query() y por eso ponías el nombre de la BD en el SQL. Lo mejor es que la selecciones en el momento de la conexión como te puse antes.

Saludos
  #7 (permalink)  
Antiguo 02/11/2004, 05:54
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Dentro de este mismo tema Cluster. En el caso que tengas muchas variables pero las tengas que ir insertandor en diferentes tablas, pero hay un campo que es unico en cada una de ellas, como se haria?

Muchas gracias!
  #8 (permalink)  
Antiguo 02/11/2004, 13:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. Shute .. tantos INSERT como necesites en el bucle (dentro) de el .. (si es que te entendí bien)

Un saludo,
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 10:16.