Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: tecasoft en 19 Octubre 2015, 17:19 pm



Título: [Resuelto] problema con foreach en php para hacer insert
Publicado por: tecasoft en 19 Octubre 2015, 17:19 pm
buenas tengo una tabla que es clientes tratamiento $pscnt_nombre y $pscnt_apellidos vienen de un array para que sea un bucle de insertar tantos nombre y apellidos que quiera en una tabla apartir de $_POST[] , el problema viene que quiero unir $nombre y $apellidos en una misma query pero no se como hacerlo por foreach para que resulte exitoso, es decir que sea solo un foreach las 2 consultas.

Como lo hariais gente? alguien experto por el foro? o que se le de bien estas cosas? es que me lleva mucho lio y no se como puedo hacerlo todo en una consulta sql solo atraves de foreach?

Código
  1. foreach($pscnt_nombre as $nombre){
  2.  
  3.       mysqli_query($conexion,"insert into clientes_tratamiento (nombre,cod_tra) values ('$nombre','$id')");
  4.      }
  5.  
  6.  
  7. foreach($pscnt_apellidos as $apellidos){
  8.       mysqli_query($conexion,"insert into clientes_tratamiento (apellidos,cod_tra) values ('$apellidos','$id')");
  9.      }
  10.  
  11.  

Mod: Temas sobre PHP van al subforo de PHP


Título: Re: problema con foreach en php para hacer insert
Publicado por: 0roch1 en 19 Octubre 2015, 18:01 pm
$pscnt_nombre y $pscnt_apellidos forzosamente tienen que ser dos array diferentes?

Porque con ese código estás haciendo lo siguiente.

Código
  1. +---------+----------+------------+
  2. | cod_tra | nombre   | apellidos  |
  3. +---------+----------+------------+
  4. | C0D1    | nombre 1 | NULL       |
  5. | COD2    | nombre 2 | NULL       |
  6. | COD1    | NULL     | apellido 1 |
  7. | COD2    | NULL     | apellido 2 |
  8. +---------+----------+------------+
  9.  

Primero insertas los nombres con su respectivo código y después insertas los apellidos. En todo caso deberías hacer un update, pero entiendo que lo que no quieres es hacer dos querys.

Qué tipo de array es $pscnt_nombre y $pscnt_apellidos?, cómo lo construyes?
De dónde sale $id?




Título: Re: problema con foreach en php para hacer insert
Publicado por: MinusFour en 19 Octubre 2015, 18:24 pm
Si tiene el mismo indice:

Código
  1. foreach($pscnt_nombre as $index => $nombre){
  2.    $apellido = $pscnt_apellidos[$index];
  3.     mysqli_query($conexion,"insert into clientes_tratamiento (nombre, apellido, cod_tra) values ('$nombre','$apellido','$id')");
  4. }


Título: Re: problema con foreach en php para hacer insert
Publicado por: tecasoft en 19 Octubre 2015, 23:55 pm
gracias neng solucionado MinusFour