Foros del Web » Programando para Internet » PHP »

Problemas con checkbox y mysql

Estas en el tema de Problemas con checkbox y mysql en el foro de PHP en Foros del Web. Hola! He estado buscando por el foro post relacionados con mi problemas pero aún así no he podido solucionar mi duda. Tengo un formulario el ...
  #1 (permalink)  
Antiguo 21/02/2004, 15:53
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Antigüedad: 20 años, 2 meses
Puntos: 1
Problemas con checkbox y mysql

Hola!
He estado buscando por el foro post relacionados con mi problemas pero aún así no he podido solucionar mi duda.

Tengo un formulario el cual tienes 4 opciones:
Código:
<input type="checkbox" name="aficion" value="futbol">
<input type="checkbox" name="aficion" value="balon">
<input type="checkbox" name="aficion" value="nata">
<input type="checkbox" name="aficion" value="motos">
He estado leyendo que en el "name" tendría que poner un nombre tipo name="aficion[]" y luego con un bucle guardarlo en un array separado los registros seleccionados con comas, el problema o duda que tengo es que lo que yo quiero hacer, es guardar cada afición por separado en la base de datos, sin estar metidas todas en una variable.

Un saludo
------------------
Se me olvido comentar como tengo creada la base de datos, tengo una tabla llamada "usuarios", donde tengo los campos con los datos del usuario (nombre, apellidos, .... , futbol, balon, natacion y motos), el tema es q cuando en el formulario este checkeado la opcion de las aficiones quede reflejado en la base de datos.

Última edición por ToRu; 22/02/2004 a las 14:11
  #2 (permalink)  
Antiguo 21/02/2004, 23:53
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Y como controlas la cantidad de campos en tu BD? tienes aficion1, aficion2, etc??

O creas una tabla aparte que relaciona usuarios y aficiones?

por ejemplo:
Código:
USR | AFICION
1   | futbol
1   | nata
2   | balon
2   | nata
2   | motos

etc...
Si es esa ultima opcion BRAVO!! esa es la forma mas adecuada de hacerlo, pues te permite en un futuro agregar la cantidad que quieras de nuevas aficiones.

Para este caso, la clave sería hacer lo que te han sujerido, y luego recorrer el array para insertar los registros en la tabla de aficiones...

Código PHP:

foreach ($_POST[aficion] as $afi) {
    
$query="insert into user2afi (user,aficion) values (".$usuario.", '".$afi."')";
    
//aqui corres el query en tu BD


__________________
Manoloweb
  #3 (permalink)  
Antiguo 22/02/2004, 14:35
 
Fecha de Ingreso: febrero-2004
Ubicación: desde aqui
Mensajes: 64
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola, pues ya he sacado lo que buscaba, he utilizado el foreach que has puesto y lo he modificado un poco :
Código PHP:
  foreach ($_POST['aficion'] as $id){
   if(
$id==1){$afi[0]=1;} else {$afi[]=0;}
   if(
$id==2){$afi[1]=1;} else {$afi[]=0;}
   if(
$id==3){$afi[2]=1;} else {$afi[]=0;}
   if(
$id==4){$afi[3]=1;} else {$afi[]=0;} 
Así cuando un checkbox este marcado en la base de datos aparecerá la afición con "1" y si no esta marcada pues con "0".

Gracias por la ayuda :)

Última edición por ToRu; 22/02/2004 a las 15:45
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 06:46.