Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/06/2011, 10:55
luis_fretes
 
Fecha de Ingreso: junio-2011
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: INSERT INTO varias filas a la vez

Cita:
Iniciado por Eleazan Ver Mensaje
Veamos....


El primer "problema" que tienes es el formulario.

Si tu le dices que hay 20 campos con el nombre "agente". Luego... ¿cómo pillas 20 resultados? Se sobreescribirian, y sólo te quedaria el último (o el primero, no sé xD) !

Así pues, el bucle lo podrías hacer así:
Código PHP:
<?php $i  0
do {  
$i ++;?>//Repetir filas en el formulario

<select name="agente<?php echo $i ?>">//Traigo de otra tabla de la DB
        <?php do {  ?>
        <option value="<?php echo $row_agente['id']?>" ><?php echo $row_agente['nombre']?></option>
        <?php } while ($row_agente mysql_fetch_assoc($agente)); ?>
</select>

<select name="turno<?php echo $i ?>">
        <option value="mañana" >mañana</option>
        <option value="tarde" >tarde</option>
        <option value="noche" >noche</option>

</select>
<?php } while ($i 20); ?>//FIN Repetir filas en el formulario
Así, por ejemplo, tendrías 20 registros, nombrados desde agente1 agente2 agente3... etc, hasta agente20.

A la hora de recoger las variables, sería con $_POST['agente1'] o $_POST['agente5'] etc.... y cada uno con su $_POST['turno1'] o $_POST['turno5'].

Así pues, tienes dos posibilidades:
·Hacer un query por insercion:
Código PHP:
$i 0;
do {
    
$i++;
    
$turno $_POST['turno'.$i];
    
$agente $_POST['agente'.$i];
    
mysql_query("INSERT INTO horarios (turno, agente) VALUES ('$turno','$agente')");
    } while( 
$i 20); 
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
· Hacer un query con todas las inserciones
Código PHP:
$i 0;
$value '';
do {
   
$i++;
   
$turno $_POST['turno'.$i];
   
$agente $_POST['agente'.$i];
   if(
$value == '')  $value "VALUES('$turno','$agente')";
   else 
$value .= "VALUES('$turno','$agente')";
   } while(
$i 20);
mysql_query("INSERT INTO horarios (turno, agente) ".$value); 

Cada línea de código tiene su propósito (y lo estoy haciendo de cabeza, asiq puede q tb su fallo!). Si no entiendes alguna cosa, piénsa pq está así, y si no se te ocurre el pq hago esto así o asá, pregunta! Si veo la pregunta, te contestaré!

PD: Pero, sobretodo, ten en cuenta que esto no es para que copies&pegues, es para que veas cómo se puede solucionar, hay 1000 formas de hacer las cosas ^^
Gracias por tu respuesta, creo que abre luces para hacer algo, ehm, los campos "agentes" solo aparece en el 1er campo del formulario, no se parece que despues del $row_agente = mysql_fetch_assoc($agente) el $row_agente['nombre'] ya no funciona, tira todo vacio