Foros del Web » Programando para Internet » PHP »

Guardar a la DB desde un formulario dinamico

Estas en el tema de Guardar a la DB desde un formulario dinamico en el foro de PHP en Foros del Web. Hola, he creado un formulario dinámico ya que los campos no siempre son los mismos, la cosa es que para guardarlos me quedo en una ...
  #1 (permalink)  
Antiguo 19/07/2012, 08:26
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Guardar a la DB desde un formulario dinamico

Hola, he creado un formulario dinámico ya que los campos no siempre son los mismos, la cosa es que para guardarlos me quedo en una parte y no se como armar la consulta del INSERT, me quedé aquí:
Código PHP:
Ver original
  1. foreach ( $_POST as $key => $value ) {
  2.    
  3. }
Dentro de eso debería ir el INSERT INTO bla bla, en la variable $key estan los nombres de los campos y en $value los valores, yo intenté hacer asi:
Código PHP:
Ver original
  1. foreach ( $_POST as $key => $value ) {
  2.     $str = "INSERT INTO tabla ($key) VALUES ($value)";
  3. }
Pero me hace un insert por cada vez que pasa el foreach, con los campos y valores diferentes.

Como puedo armar la consulta INSERT para que salga bien?

Gracias.
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 19/07/2012, 08:30
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Guardar a la DB desde un formulario dinamico

simple, en el ciclo concateneas los valores:

(valor, valor), (valor, valor), (valor, valor), etc....

luego concatenas el resto:

$sql = "INSERT INTO $tabla (id, campo) VALUES " . $valores_del_ciclo;
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 19/07/2012, 08:42
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Guardar a la DB desde un formulario dinamico

no lo entiendo bien, puedes explicármelo mejor por favor.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 19/07/2012, 08:51
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Guardar a la DB desde un formulario dinamico

hola

quiere decir que hagas esto:

Código PHP:
Ver original
  1. function RegistraArreglo($arreglo)
  2. {
  3.     foreach ($arreglo as $key => $value) {
  4.                  $campos .= $key.",";
  5.                  $values .= "'".$value."',";
  6.     }
  7.  
  8.     $campos = substr($campos,0,strlen($campos)-1);
  9.     $values = substr($values,0,strlen($values)-1);
  10.  
  11.     $reg= array("campos"=>$campos,
  12.                 "values"=>$values
  13.                );
  14.     return $reg = (object) $reg;
  15. }
  16.  
  17. $arreglito = array("campo1"=>"valor1",
  18.                              "campo2"=>"valor2"
  19.                             );
  20.  
  21. $obj = RegistraArreglo($arreglito);// en tu caso seria  RegistraArreglo($_POST);
  22.  
  23. $query = sprintf("INSERT INTO mitabla (%s) VALUES (%s)",$obj->campos,$obj->values);

la verdad asi lo manejo....
  #5 (permalink)  
Antiguo 19/07/2012, 14:55
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Guardar a la DB desde un formulario dinamico

Me sale un error se sintaxis en esta línea:
Código PHP:
Ver original
  1. $query = sprintf( "INSERT INTO $tabla (%s) VALUES (%s)", $obj->campos, $obj->values );
sale que hay un error de sintaxis cerca de ")".
__________________
El aprendiz.
  #6 (permalink)  
Antiguo 19/07/2012, 15:04
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Guardar a la DB desde un formulario dinamico

hola

comenta esa linea e imprime esto para ver que te muestra



Código PHP:
Ver original
  1. echo $obj->campos." ".$obj->values;
  2.  
  3. //$query = sprintf( "INSERT INTO $tabla (%s) VALUES (%s)", $obj->campos, $obj->values );
  #7 (permalink)  
Antiguo 19/07/2012, 16:29
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Guardar a la DB desde un formulario dinamico

ya se donde esta el problema, la cosa es que tambien coje el nombre del Boton Guardar y el valor y es ahi donde resulta el problema, como puedo hacer para q tome todos los controles menos el ultimo?
__________________
El aprendiz.
  #8 (permalink)  
Antiguo 19/07/2012, 16:40
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Guardar a la DB desde un formulario dinamico

mmmmm por ejemplo si el boton se llamara enviar

Código PHP:
Ver original
  1. unset($_POST["enviar"]);
  2.  
  3. var_dump($arreglito);

de esa forma unset eliminara el indice enviar y su valor...
  #9 (permalink)  
Antiguo 19/07/2012, 21:45
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Guardar a la DB desde un formulario dinamico

Quedó buenísimo, muchas gracias.
__________________
El aprendiz.

Etiquetas: dinamico, formulario, tabla, variables
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 11:02.