Foros del Web » Programando para Internet » PHP »

Guardar valores de Checkbox en BD

Estas en el tema de Guardar valores de Checkbox en BD en el foro de PHP en Foros del Web. Hola a todos, quisiera saber como puedo guardar los valores de checkbox en una tabla. pero que los valores del checkbox se guarden en un ...
  #1 (permalink)  
Antiguo 05/12/2012, 11:29
Avatar de danramglez  
Fecha de Ingreso: septiembre-2012
Mensajes: 70
Antigüedad: 11 años, 7 meses
Puntos: 2
Guardar valores de Checkbox en BD

Hola a todos, quisiera saber como puedo guardar los valores de checkbox en una tabla.

pero que los valores del checkbox se guarden en un solo campo, gracias

ejemplo que los materias, las guarde en una tabla que diga alumnos, en un campo que se llame asignaturas.


gracias
__________________
"La funcion de un buen software es hacerlo parecer simple"
  #2 (permalink)  
Antiguo 05/12/2012, 12:35
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Guardar valores de Checkbox en BD

pasa los datos a un array y metes en array en la tabla

que no sabes hacer o que problema tienes¿?
  #3 (permalink)  
Antiguo 05/12/2012, 12:42
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Guardar valores de Checkbox en BD

Podrias concatenar los valores del checkbox en una variable y solo guardar ese registro en la columna
EJ:

Código PHP:
Ver original
  1. $chk1 = $_POST['chk1'];
  2. $chk2 = $_POST['chk2'];
  3. $chk3 = $_POST['chk3'];
  4.  
  5. // Usamos el punto '.' para concatenar variables.
  6. $asignaturas = $chk1.', '.$chk2.', '.$chk3;
  7.  
  8. // Y asignaturas la guardas en la BD

Nos dices si te ayudó.
  #4 (permalink)  
Antiguo 05/12/2012, 12:52
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Guardar valores de Checkbox en BD

creo que es mas simple y efectivo con un array , reducimos lineas de codigo y menos memoria
Código HTML:
Ver original
  1. <input type="checkbox" name="asignaturas[]" value="matematicas">
  2. <input type="checkbox" name="asignaturas[]" value="lenguaje">
  3. <input type="checkbox" name="asignaturas[]" value="religion">
  #5 (permalink)  
Antiguo 05/12/2012, 12:55
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Guardar valores de Checkbox en BD

A mira, esta mejor con esa opción, así nada mas usas una función de php para generar el string de ese Array, muy buena :D
  #6 (permalink)  
Antiguo 05/12/2012, 12:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Guardar valores de Checkbox en BD

Solo comentar que en la mayoría de los casos no se debería guardar un array en un campo. Conviene normalizar la base de datos teniendo una relación de muchos a muchos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 05/12/2012, 13:06
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Guardar valores de Checkbox en BD

Si claro, eso ya es problema del diseño de la bd, ya cuando aprenda mas el usuario manejará la información de mejor manera, el tema suena como un proyecto de escuela.
  #8 (permalink)  
Antiguo 05/12/2012, 15:31
Avatar de danramglez  
Fecha de Ingreso: septiembre-2012
Mensajes: 70
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Guardar valores de Checkbox en BD

Muchas gracias, yo creo que lo hare con un array y claro que es mas facil guardar cada opcion en un campo, pero en esta ocacion me lo pidieron de esta forma, gracias por sus respuestas!
__________________
"La funcion de un buen software es hacerlo parecer simple"

Etiquetas: bd, checkbox, 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 19:16.