Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/07/2011, 16:39
lubtufano
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 13 años, 6 meses
Puntos: 72
Respuesta: insertar datos de array en mysql

Cita:
Al enviar los datos estos se ingresan de esta forma:


38 3
37 2 0
36 1 0

Me gustaría que me ayudaran para que los datos se ingresen así:

38 1 2 3
39 2 3 4
No entendí muy bien esto que escribiste, pero me imagino que lo que quieres es que en cada registro se guarde la información de manera ordenada en cada campo correspondiente, de la misma manera como es ingresada en los campos de texto dinámicos. Pues pensando esto he probado el código y según he visto el problema es que en cada iteración del cada bucle foreach(), esto es en cada consulta, se inserta solo un dato en un campo, cuando lo necesario es insertar los tres datos (id_insumo, nombre_insumos, cantidad) en una sola consulta. Yo pude resolver esto con el siguiente código.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $h= array();
  4. $p= array();
  5. $q= array();
  6.  
  7. foreach($_POST['h'] as $key=>$value)
  8.     $h[]= $value;
  9.  
  10. foreach($_POST['p'] as $key=>$value)
  11.     $p[]= $value;
  12.  
  13. foreach($_POST['q'] as $key=>$value)
  14.     $q[]= $value;
  15.  
  16. $conexion= mysql_connect("localhost", "root", "");
  17. mysql_select_db("test", $conexion);
  18.  
  19. for($i=0; $i<count($h); $i++)
  20. {
  21.    mysql_query("INSERT INTO planifi_insum (id_insumo, nombre_insumos, cantidad) VALUES($h[$i], '$p[$i]', $q[$i])",$conexion)or die(mysql_error());
  22. }
  23.  
  24. ?>

Tambien te sugiero que la selección de la base de datos la realizes fuera de cualquier bucle ya que el resultdo es el mismo y te ahorras lineas de código y quizá algo de tiempo de ejecución. Espero que te sirva de algo esta solución.