Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2013, 16:40
Avatar de JManuelMV
JManuelMV
 
Fecha de Ingreso: enero-2013
Ubicación: Apaseo el Alto, Gto, México
Mensajes: 20
Antigüedad: 11 años, 3 meses
Puntos: 1
Información Formulario con varios checkbox, php y mysql

Hola, le comento que es lo que tengo que hacer, va a ser un sistema en el cual se va a registrar a usuarios y dentro del formulario de registro pueden escoger mediante varios checkbox temas de su preferencia y de las cuales se impartiran talleres y así después mandarles información a sus correos dependiendo de las opciones que se escogieron.

Lo que tengo la duda es para hacer el registro de los checkbox en la BD, ahorita por el momento solo estoy haciendo pruebas solo con los checkbox.

Cada opción del checkbox lo cargo desde una tabla de la base de datos en donde tengo guardado cada taller.

Ya estuve leyendo otros post aquí en el foro y me di la idea de que debo tratar a los check como un array.

La manera en la que lo cargo es la siguiente:

Código PHP:
Ver original
  1. <?php
  2.     $query2 = ("select * from talleres");
  3.     $result2 = mysql_query($query2);   
  4. ?>
  5.  
  6. <form name="interes" action="mostrar.php" method="post">
  7.      <?php
  8.         while ($row = mysql_fetch_array($result2))  {
  9.             echo "<input type='checkbox' name='inter[]' value=".$row['id_taller'].">".$row['nombre']." <br>";
  10.         }
  11.     ?>
  12.     <br>
  13.     <input type="submit" value="enviar">
  14. </form>


Y los mando mediante post, y los capturo de esta forma:


Código PHP:
Ver original
  1. $interes=$_POST['inter'];
  2. $_POST['check'] = $interes;
  3. //verificamos si se envía un array
  4. if(is_array($_POST['check'])) {
  5.     //el titulo
  6.     echo "<strong>Los siguientes talleres han sido escogidos:</strong><br /><br />";
  7.     while(list($key,$value) = each($_POST['check'])) {
  8.        
  9.         //hacemos el insert
  10.         $query="INSERT INTO tallerFam (taller) VALUES ($value)";
  11.                
  12.         //hacemos el query
  13.        $resultado1 = mysql_query($query) or die(mysql_error());
  14.         //hacemos echo a los talleres
  15.         echo $value.'<br />';
  16.         }
  17.     }
  18. else {
  19.     //si no es array se envía un mensaje
  20.     echo "La informaci&oacute;n enviada no es un array";
  21.     }  
  22. ?>

con eso me muestra una lista de los seleccionados y los inserta en la tabla de la bd.

Esto hace un registro en la tabla por cada check seleccionado, eso quiere decir que si selecciono 5 inserta 5 registros en la tabla.

El detalle seria que solo insertara un solo registro por todo, ya que se supone que son las opciones que selecciono el mismo usuario.

Si alguien tiene alguna sugerencia de como hacerle o alguna corrección de lo que llevo desde ya muchas gracias.