Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar checkbox en DB con mysqli

Estas en el tema de Insertar checkbox en DB con mysqli en el foro de PHP en Foros del Web. Muy buenas a todos. Necesito que se inserten todos los checkbox que se seleccionen, aunque sean mas de 1. Este es el formulario: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 17/02/2016, 21:19
 
Fecha de Ingreso: febrero-2016
Ubicación: Mallorca
Mensajes: 5
Antigüedad: 8 años, 2 meses
Puntos: 0
Pregunta Insertar checkbox en DB con mysqli

Muy buenas a todos. Necesito que se inserten todos los checkbox que se seleccionen, aunque sean mas de 1.
Este es el formulario:

Código HTML:
Ver original
  1. <form name="encuesta" method="post" action="encuesta1.php">
  2.       <h3 class="encuesta1">1. Soy:</h3>
  3.       <label><input type="checkbox" value="estudiante" name="opcion1[]"/>Estudiante</label>
  4.       <label><input type="checkbox" value="academico" name="opcion1[]"/>Académico/ca</label>
  5.       <label><input type="checkbox" value="investigador" name="opcion1[]"/>Investigador/a</label>
  6.       <label><input type="checkbox" value="profesional" name="opcion1[]"/>Profesional</label>
  7.       <label><input type="checkbox" value="autonomo" name="opcion1[]"/>Autónomo/a</label>
  8.       <label><input type="checkbox" value="empleado" name="opcion1[]"/>Empleado/a</label>
  9.       <label><input type="checkbox" value="funcionario" name="opcion1[]"/>Funcionario/a</label><br><br>
  10.       <h3 class="encuesta1">2. Participo/tengo experiencia en trabajos comunitarios</h3>
  11.       <label><input type="radio" value="si" name="opcion2[]"/>Si</label>
  12.       <label><input type="radio" value="no" name="opcion2[]"/>No</label><br><br>
  13.       <h3 class="encuesta1">Si lo hace desde una ONG (favor indicar el nombre y demás datos):</h3>
  14.       <textarea name="expong" style="width:90%"></textarea><br><br>
  15.       <h3 class="encuesta1">3. Me gustaría participar en proyectos comunitarios locales e internacionales.</h3>
  16.       <label><input type="radio" value="asiduamente" name="opcion3[]"/>Asiduamente</label>
  17.       <label><input type="radio" value="esporadicamente" name="opcion3[]"/>Esporádicamente</label>
  18.       <label><input type="radio" value="tal ves" name="opcion3[]"/>Tal vez</label><br><br>
  19.       <h3 class="encuesta1">4. La responsabilidad social individual/colectiva debería estar en los programas educativos.</h3>
  20.       <label><input type="radio" value="Mas" name="opcion4[]"/>Más</label>
  21.       <label><input type="radio" value="Mucho mas" name="opcion4[]"/>Mucho más</label>
  22.       <label><input type="radio" value="No se" name="opcion4[]"/>No se</label>
  23.       <label><input type="radio" value="No" name="opcion4[]"/>No</label><br><br>
  24.       <h3 class="encuesta1">5. Los distintos colectivos sociales deberían ser consultados por el Estado.</h3>
  25.       <label><input type="radio" value="Igual que ahora" name="opcion5[]"/>Igual que ahora</label>
  26.       <label><input type="radio" value="Mas" name="opcion5[]"/>Más</label>
  27.       <label><input type="radio" value="Mucho mas" name="opcion5[]"/>Mucho más</label>
  28.       <label><input type="radio" value="No se" name="opcion5[]"/>No se</label><br><br>
  29.       <h3 class="encuesta1">6. Conozco la labor de ARC•PEACE.</h3>
  30.       <label><input type="checkbox" value="No" name="opcion6[]"/>No</label>
  31.       <label><input type="checkbox" value="Algo" name="opcion6[]"/>Algo</label>
  32.       <label><input type="checkbox" value="Bastante" name="opcion6[]"/>Bastante</label>
  33.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion6[]"/>Deseo conocer más</label>
  34.       <label><input type="checkbox" value="Simpatizo" name="opcion6[]"/>Simpatizo</label>
  35.       <label><input type="checkbox" value="Soy miembro" name="opcion6[]"/>Soy miembro</label><br><br>
  36.       <h3 class="encuesta1">7. Conozco la labor de Arquitectos Sin Fronteras.</h3>
  37.       <label><input type="checkbox" value="No" name="opcion7[]"/>No</label>
  38.       <label><input type="checkbox" value="Algo" name="opcion7[]"/>Algo</label>
  39.       <label><input type="checkbox" value="Bastante" name="opcion7[]"/>Bastante</label>
  40.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion7[]"/>Deseo conocer más</label>
  41.       <label><input type="checkbox" value="Simpatizo" name="opcion7[]"/>Simpatizo</label>
  42.       <label><input type="checkbox" value="Soy miembro" name="opcion7[]"/>Soy miembro</label><br><br>
  43.       <h3 class="encuesta1">8. Conozco la labor de ARC•PEACE Iberoamérica</h3>
  44.       <label><input type="checkbox" value="No" name="opcion8[]"/>No</label>
  45.       <label><input type="checkbox" value="Algo" name="opcion8[]"/>Algo</label>
  46.       <label><input type="checkbox" value="Bastante" name="opcion8[]"/>Bastante</label>
  47.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion8[]"/>Deseo conocer más</label>
  48.       <label><input type="checkbox" value="Simpatizo" name="opcion8[]"/>Simpatizo</label>
  49.       <label><input type="checkbox" value="Soy miembro" name="opcion8[]"/>Soy miembro</label><br><br>
  50.       <h3 class="encuesta1">9. Tengo información sobre Cambio Climático.</h3>  
  51.       <label><input type="checkbox" value="Bastante" name="opcion9[]"/>No</label>
  52.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion9[]"/>Alguna</label>
  53.       <label><input type="checkbox" value="Simpatizo" name="opcion9[]"/>Bastante</label>
  54.       <label><input type="checkbox" value="Soy miembro" name="opcion9[]"/>Deseo conocer más</label><br><br>
  55.       <h3 class="encuesta1">10. Tengo información sobre HABITAT III.</h3>  
  56.       <label><input type="checkbox" value="Bastante" name="opcion10[]"/>No</label>
  57.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion10[]"/>Alguna</label>
  58.       <label><input type="checkbox" value="Simpatizo" name="opcion10[]"/>Bastante</label>
  59.       <label><input type="checkbox" value="Soy miembro" name="opcion10[]"/>Deseo conocer más</label><br><br>
  60.       <label><input type="submit" value="Enviar"/></label>
  61.      
  62.              
  63. </form>

encuesta1.php:

Código PHP:
<?php

$host_name  
"";
$database   "";
$user_name  "";
$password   "";

$connect mysqli_connect($host_name$user_name$password$database);
           if (
mysqli_connect_errno())
             {
             echo 
"Error al conectar con servidor MySQL: " mysqli_connect_error();
             }

$soy '';
if ( isset(
$POST_['opcion1']) ){
    
$soy implode (' ' $POST_['opcion1']);
}

$participo '';
if ( isset(
$POST_['opcion2']) ){
    
$participo implode (' ' $POST_['opcion2']);
}

$expong $POST_['expong']);

$megustaria '';
if ( isset(
$POST_['opcion3']) ){
    
$megustaria implode (' ' $POST_['opcion3']);
}

$responsabilidadsocial '';
if ( isset(
$POST_['opcion4']) ){
    
$responsabilidadsocial implode (' ' $POST_['opcion4']);
}

$consultadosestados '';
if ( isset(
$POST_['opcion5']) ){
    
$consultadosestados implode (' ' $POST_['opcion5']);
}

$sobrearcpeace '';
if ( isset(
$POST_['opcion6']) ){
    
$sobrearcpeace implode (' ' $POST_['opcion6']);
}

$sobreasf '';
if ( isset(
$POST_['opcion7']) ){
    
$sobreasf implode (' ' $POST_['opcion7']);
}

$sobrearcpi '';
if ( isset(
$POST_['opcion8']) ){
    
$sobrearcpi implode (' ' $POST_['opcion8']);
}

$infocambioclimatico '';
if ( isset(
$POST_['opcion9']) ){
    
$infocambioclimatico implode (' ' $POST_['opcion9']);
}

$habitatIII '';
if ( isset(
$POST_['opcion10']) ){
    
$habitatIII implode (' ' $POST_['opcion10']);
}    
    
$sql "INSTERT INTO encuesta1 (SOY, PARTICIPO, EXPONG, MEGUSTARIA, RESPONSABILIDADSOCIAL, CONSULTADOSESTADOS, SOBREARCPEACE, SOBREASF, SOBREARCPI, INFOCAMBIOCLIMATICO, HABITATIII) VALUES('$soy', '$participo', '$expong', '$megustaria', '$responsabilidadsocial', '$consultadosestados', '$sobrearcpeace', '$sobreasf', '$sobrearcpi', '$otraong', '$infocambioclimatico', '$habitatIII')";
mysqli_query($sql,$connect);

?>
Qué hago mal?
  #2 (permalink)  
Antiguo 18/02/2016, 10:45
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Insertar checkbox en DB con mysqli

En tu php renombra las variables de $POST_ a $_POST
  #3 (permalink)  
Antiguo 19/02/2016, 10:50
 
Fecha de Ingreso: febrero-2016
Ubicación: Mallorca
Mensajes: 5
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Insertar checkbox en DB con mysqli

Buenas tardes Carlillos, muchas gracias por tu pronta respuesta. Que detalle el mío con la colocación del $_POST... En fin, cuando no me sale algo la desesperación no ayuda. El codigo php quedaría de esta manera:

Código PHP:
Ver original
  1. $host_name  = "";
  2. $user_name  = "";
  3. $password   = "";
  4. $database   = "";
  5.  
  6. $connect=new mysqli($host_name, $user_name, $password, $database);
  7.     if ($connect->connect_errno){
  8.         echo "Error al conectar con servidor MySQL: " . mysqli_connect_error();
  9.     }
  10.    
  11.     $soy = '';
  12. if ( isset($_POST['opcion1']) ){
  13.     $soy = implode (',' , $_POST['opcion1']);
  14. }
  15.  
  16. $participo = '';
  17. if ( isset($_POST['opcion2']) ){
  18.     $participo = implode (' ' , $_POST['opcion2']);
  19. }
  20.  
  21. $expong = $_POST['expong'];
  22.  
  23. $megustaria = '';
  24. if ( isset($_POST['opcion3']) ){
  25.     $megustaria = implode (' ' , $_POST['opcion3']);
  26. }
  27.  
  28. $responsabilidadsocial = '';
  29. if ( isset($_POST['opcion4']) ){
  30.     $responsabilidadsocial = implode (' ' , $_POST['opcion4']);
  31. }
  32.  
  33. $consultadosestados = '';
  34. if ( isset($_POST['opcion5']) ){
  35.     $consultadosestados = implode (' ' , $_POST['opcion5']);
  36. }
  37.  
  38. $sobrearcpeace = '';
  39. if ( isset($_POST['opcion6']) ){
  40.     $sobrearcpeace = implode (' ' , $_POST['opcion6']);
  41. }
  42.  
  43. $sobreasf = '';
  44. if ( isset($_POST['opcion7']) ){
  45.     $sobreasf = implode (' ' , $_POST['opcion7']);
  46. }
  47.  
  48. $sobrearcpi = '';
  49. if ( isset($_POST['opcion8']) ){
  50.     $sobrearcpi = implode (' ' , $_POST['opcion8']);
  51. }
  52.  
  53. $infocambioclimatico = '';
  54. if ( isset($_POST['opcion9']) ){
  55.     $infocambioclimatico = implode (' ' , $_POST['opcion9']);
  56. }
  57.  
  58. $habitatIII = '';
  59. if ( isset($_POST['opcion10']) ){
  60.     $habitatIII = implode (' ' , $_POST['opcion10']);
  61. }  
  62.  
  63. if (isset($_POST["submit"])){
  64. mysqli_query ($connect,"INSTERT INTO encuesta1 (SOY, PARTICIPO, EXPONG, MEGUSTARIA, RESPONSABILIDADSOCIAL, CONSULTADOSESTADOS, SOBREARCPEACE, SOBREASF, SOBREARCPI, OTRAONG, INFOCAMBIOCLIMATICO, HABITATIII) VALUES('$soy', '$participo', '$expong', '$megustaria', '$responsabilidadsocial', '$consultadosestados', '$sobrearcpeace', '$sobreasf', '$sobrearcpi', '$otraong', '$infocambioclimatico', '$habitatIII')");
  65. }
  66.  
  67. mysqli_close ($connect);

Sigue sin funcionar, estoy tratando de ponerme en contacto con soporte de 1&1 a ver si pueden ayudarme, pero mientras tanto me gustaría agilizar la situación y ver si podéis ayudarme. Qué estoy haciendo mal?
  #4 (permalink)  
Antiguo 19/02/2016, 10:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar checkbox en DB con mysqli

Te sugiero depurar las variables que recibes así como la consulta antes de ejecutarla:

1. Mirar el código no sirve de nada, mientras no seamos capaces de ejecutar mentalmente el código es imposible entender lo que realmente pasa.

2. Agrega sentencias var_dump() al momento de recibir el $_POST y también guarda la consulta en un string antes de ejecutarla para que igual la depures.

Cuando tengas los resultados muestra lo que obtienes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/02/2016, 11:46
 
Fecha de Ingreso: febrero-2016
Ubicación: Mallorca
Mensajes: 5
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Insertar checkbox en DB con mysqli

Muchas gracias pateketrueke y Carlillos por vuestra atención! Estuve hablando mas de 30min con soporte de 1&1 y al final en un de esos momentos de inspiración el operador me dice: "Solucionado!" el problema estaba en que siempre estuvo mal escrito el INSERT (INSTERT). Increíble no?!

Etiquetas: formulario, html, mysqli
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 07:28.