PHP - check box

   
Vista:

check box

Publicado por luis (1 intervención) el 20/09/2013 20:06:28
hola estoy haciendo una pagina web y necesito insertar varios check box a la base de datos usando mysql y php y estoy confindido para realizar esto.


html


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<form id = "formulario" name = "formulario" method = "post" action = "fin.php">
 <label for = "opcionA" accessKey = "opcionA">A</label>
 <input type = "checkbox" id = "opcionA" name = "opcionA" value = "A" />
 
 <label for = "opcionB" accessKey = "opcionB">B</label>
 <input type = "checkbox" id = "opcionB" name = "opcionB" value = "B" />
 
 <label for = "opcionC" accessKey = "opcionC">C</label>
 <input type = "checkbox" id = "opcionC" name = "opcionC" value = "C" />
 
  <label for = "opcionD" accessKey = "opcionC">D</label>
 <input type = "checkbox" id = "opcionD" name = "opcionDD" value = "D" />
 
  <label for = "opcionE" accessKey = "opcionC">E</label>
 <input type = "checkbox" id = "opcionE" name = "opcionE" value = "E" />
 
  <label for = "opcionF" accessKey = "opcionF">F</label>
 <input type = "checkbox" id = "opcionF" name = "opcionF" value = "F" />
 
  <label for = "opcionG" accessKey = "opcionG">G</label>
 <input type = "checkbox" id = "opcionC" name = "opcionC" value = "G" />
 
  <label for = "opcionH" accessKey = "opcionH">H</label>
 <input type = "checkbox" id = "opcionH" name = "opcionH" value = "H" />
 
 
 <input type = "submit" id = "enviar" name = "enviar" value = "Enviar" />
 </form>

y la base de datos

1
2
3
4
create table SCRIPT  (
   ESTADO        varchar(20)                   not null,
   primary key (NOMBRESCRIPT)
);

solo necesito que me guarde el estado bien sea 0 o 1
en la base de datos

si alguien me puede ayudar gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

check box

Publicado por xve (5522 intervenciones) el 21/09/2013 10:23:28
Hola Luis, no te entiendo muy bien... tienes un monton de checks... que los quieres guardar todos en un solo campo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

check box

Publicado por Mari Carmen (145 intervenciones) el 25/09/2013 13:07:53
Tienes muchas formas de abordar el problema.

La primera sin cambiar la base de datos es juntar todas las respuestas en un string separado con algún carácter separador por ejemplo una coma, guardarlo en la base de datos como estado.
<!--Rizando el rizo y si tienes caracteres "raros" le haces un base64encode y guardas eso.-->
Tienes que tener en cuenta que no deberá sobrepasar esos 20 carácteres por lo que contando con los separadores no podrá superar las 10 opciones tu formulario.
Luego para volver a utilizarlas como variables independientes haces un explode() sobre el string de la base de datos con el carácter delimitador y usas a tu gusto el array.
Info de explode() -> http://www.php.net/manual/es/function.explode.php

La segunda que se me ocurre es cambiar la base de datos, y crear un campo por cada opción que tengas en el formulario, así cada campo tendrá un valor booleano,(True o False). Luego solo tienes que hacer la o las peticiones a la BBDD y supongo que sabrás como apañarlo para usar las variables.

Supongo que habrá mas formas pero estoy cansada para pensar ahora.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

check box

Publicado por Elier (92 intervenciones) el 26/09/2013 22:36:46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<form action="fin.php" method="post">
 
Seleccione las respuestas correctas?<br />
<input type="checkbox" name="arregloOpciones[]" value="A" />A<br />
<input type="checkbox" name="arregloOpciones[]" value="B" />B<br />
<input type="checkbox" name="arregloOpciones[]" value="C" />C<br />
<input type="checkbox" name="arregloOpciones[]" value="D" />D<br />
<input type="checkbox" name="arregloOpciones[]" value="E" />E<br />
<input type="checkbox" name="arregloOpciones[]" value="F" />F<br />
<input type="checkbox" name="arregloOpciones[]" value="G" />G<br />
<input type="checkbox" name="arregloOpciones[]" value="H" />H<br />
 
<input type="submit" name="enviar" value="Enviar" />
 
</form>
 
La tabla en la base de datos
 
id -> INT
nombre -> CHAR(1)
valor -> TINYINT(1)
fecha -> DATETIME
 
el id autoincrementable
fecha ->  agruparar a todos los checkbox de cada formulario
 
El código PHP
 
<?php
 
$checks = array ("A" => 0, "B" => 0, "C" => 0, "D" => 0, "F" => 0,"G" => 0, "H" => 0);
 
 
$opciones = $_POST['arregloOpciones'];
 
if(!empty($opciones))
 {
  $N = count($opciones);
  for($i=0; $i < $N; $i++)
    {
      $checks[$opciones[$i]] = 1;
    }
  }
 
$fecha = date("Y-m-d H:i:s");
foreach($checks as $nombre => $valor)
{
     //  Revisar si lleva las comillas simples encerrando las variables
    $query = "INSERT INTO script(nombre, valor, fecha) VALUES ('$nombre', $valor, '$fecha')";
 
    mysqli_query($conn,$query);
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar