Foros del Web » Programando para Internet » PHP »

Formulario con varios checkbox, php y mysql

Estas en el tema de Formulario con varios checkbox, php y mysql en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/06/2013, 16:40
Avatar de JManuelMV  
Fecha de Ingreso: enero-2013
Ubicación: Apaseo el Alto, Gto, México
Mensajes: 20
Antigüedad: 11 años, 10 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.
  #2 (permalink)  
Antiguo 10/06/2013, 18:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Formulario con varios checkbox, php y mysql

Cita:
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 estás hablando de poner N valores dentro de un mismo campo, eso desde la programación puede parecer aceptable, pero desde la óptica de Bases de Datos es un espanto, y está taxativamente prohibido en las bases de datos relacionales.
En caso de hacerlo así, tarde o temprano deberás tirar a la basura lo hecho y empezar de cero, pero diseñando correctamente la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/06/2013, 00:04
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Formulario con varios checkbox, php y mysql

Como dice @gnzsoloyo, no se puede con bases de datos relacionales........ pero puedes usar un ORM ... por ejemplo redBeans y haces lo que quieras y el propio sistema te crea las tablas que corresponden a tu logica
__________________
Salu2!
  #4 (permalink)  
Antiguo 11/06/2013, 09:36
Avatar de JManuelMV  
Fecha de Ingreso: enero-2013
Ubicación: Apaseo el Alto, Gto, México
Mensajes: 20
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Formulario con varios checkbox, php y mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si estás hablando de poner N valores dentro de un mismo campo, eso desde la programación puede parecer aceptable, pero desde la óptica de Bases de Datos es un espanto, y está taxativamente prohibido en las bases de datos relacionales.
En caso de hacerlo así, tarde o temprano deberás tirar a la basura lo hecho y empezar de cero, pero diseñando correctamente la base.
Gracias por la contestar @gnzsoloyo, creo que mi error fue empezar a hacer las pruebas solo con los checkbox, entonces lo que tengo que hacer el diseñar correctamente la BD.

Tengo un diseño pero igual el hace falta el punto de vista de otra persona.

También revisando lo que escribí como que no me explique bien.

Bueno los datos que se agregaran al sistema provienen de una encuesta que las personas ya llenaron anteriormente.

Los que se registra en la BD es lo clásico como nombre, dirección, teléfono, correo y otros más, ademas de agregar los checkbox en los cuales podrán seleccionar temas de cursos que les gustaría tomar, y al así mandarles información solo a los que seleccionaron determinado curso.

Y en donde me atore fue en como hacer el registro de los datos en la BD.

La idea que tengo, y aun esta en desarrollo y es el de crear una tabla para el registro de las personas, otra en donde daré de alta los cursos previamente y otra en donde consolidare a la persona con cada uno de los cursos que le gustaría tomar.

Alguna sugerencia u observación, o si es que estoy demasiado perdido en el asunto jeje.

Desde ya gracias de nuevo por tomarte el tiempo de contestar.

Etiquetas: php+bd+mysql
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 22:18.