Foros del Web » Programando para Internet » PHP »

Guardar varios input en una columna de una tabla

Estas en el tema de Guardar varios input en una columna de una tabla en el foro de PHP en Foros del Web. Hola a todos, tengo una duda de como conseguir guardar un conjunto de campos de un formulario en una sola columna de una tabla MySQL. ...
  #1 (permalink)  
Antiguo 25/03/2016, 12:47
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Guardar varios input en una columna de una tabla

Hola a todos,

tengo una duda de como conseguir guardar un conjunto de campos de un formulario en una sola columna de una tabla MySQL.

Tengo un campo de tipo texto el cual duplico y cambio el "name" con JS. De esta manera hago que el usuario pueda tener tantos campos como sea necesario.

El problema de esto lo tengo al guardar todos los valores introducidos en estos distintos campos en una sola columna y no se muy bien como hacerlo.

Alguien puede sugerir una idea?
__________________
Going hard for too long... Can't get enough
  #2 (permalink)  
Antiguo 25/03/2016, 13:18
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Guardar varios input en una columna de una tabla

Haces el envío de los datos por medio de un formulario, o por medio de javascript?
  #3 (permalink)  
Antiguo 26/03/2016, 07:30
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Guardar varios input en una columna de una tabla

Mi intención era hacerlo por medio de un formulario. Aunque quizás aplicar un encode para dejar todos esos datos en un json o algo así y así en un simple campo pasar todos esos inputs.
__________________
Going hard for too long... Can't get enough
  #4 (permalink)  
Antiguo 26/03/2016, 08:14
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Guardar varios input en una columna de una tabla

Quizá esto te sirva: https://mimentevuela.wordpress.com/2...-inputs-html5/
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 26/03/2016, 08:42
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Guardar varios input en una columna de una tabla

imagino que los estas creando dinamicamente, seria algo asi amigo:

todos los campos deberian de tener el mismo nombre solo que agregando un par de corchetes
Código HTML:
Ver original
  1. <input type="text" name="campo[]" />

luego donde los recibes haces esto:

Código PHP:
Ver original
  1. for($i=0; $i < count($_POST['campo']); $i++){
  2.  
  3. $a = $_POST['campo'][$i];
  4.  
  5. $b = $db->query("INSERT INTO tabla (columna) VALUE ('$a')");
  6.  
  7. }

de esa manera insertas los registros de enviados por post, muy útil si por ejemplo estas creando un caro de compras o simplemente estas creando una lista dinámica de nombres o lo que sea, cuentas los registros que vienen y los insertas uno detrás del otro en la tabla.
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 26/03/2016, 09:15
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Guardar varios input en una columna de una tabla

Retomando el ejemplo de arriba. Si quieres almacenarlos en una sola columna, o cadena:

Código PHP:
Ver original
  1. $datos="";
  2. for($i=0; $i < count($_POST['campo']); $i++){
  3.  
  4. $datos .= $_POST['campo'][$i].",";
  5.  
  6. }
  7.  $datos = rtrim($datos, ",");
  8.  
  9. $b = $db->query("INSERT INTO tabla (columna) VALUE ('$datos')");
Esto almacena todos los valores en una. Variable separada por comas, y con rtrim quitamos la última.

]

Etiquetas: columna, formulario, input, mysql, tabla
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 17:33.