domingo, 1 de diciembre de 2013

Guardar valores de CheckBox en una BD MySql con PHP

Hola, en esta ocación vamos a ver la manera correcta en que se pueden almacenar los valores que contienen los checkbox (que se han seleccionado) en una base de datos Mysql por medio de PHP.
En un documento HTML creamos un formulario sencillo en donde le pedimos al usuario que escriba su nombre y seleccione los deportes que le gustan.
Para comenzar, empezamos creando una tabla en una base de datos que esté en nuestro servidor local (dado el caso) con el siguiente script:

CREATE TABLE `prueba` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nombre` VARCHAR( 50 ) NOT NULL , `deporte` VARCHAR( 100 ) NOT NULL ) ENGINE = MYISAM ;

Después pasamos a crear el formulario:

A esta página la he llamado: prueba.html
<form action="validar_formulario.php" method="post" name="prueba_checkbox"> <table width="50%" border="1" cellspacing="0" cellpadding="1"> <tr> <td width="40%" align="left" valign="top">Su nombre:</td> <td width="60%"><label for="nombre"></label> <input type="text" name="nombre" id="nombre" /></td> </tr> <tr> <td align="left" valign="top">¿de qué deportes gusta?</td> <td> futbol <input name="checkbox[]" type="checkbox" id="checkbox" value="futbol" /><br> tenis <input name="checkbox[]" type="checkbox" id="checkbox" value="tenis" /><br> baloncesto <input name="checkbox[]" type="checkbox" id="checkbox" value="baloncesto" /><br> atletismo <input name="checkbox[]" type="checkbox" id="checkbox" value="atletismo" /><br> </td> </tr> <tr> <td align="left" valign="top">&nbsp;</td> <td><input type="submit" name="button" id="button" value="Enviar" /></td> </tr> </table> </form>


Ahora, continuamos creando una página web la cual nombraremos “validar_formulario.php”, esa página va a ser la encargada de recibir todos los valores que le envía el formulario mediante el método POST:
validar_formulario.php
Se declara la variable que va a a contener el nombre que se ingresó en el formulario

$nombre=$_POST['nombre'];
Con el siguiente script recorremos todos los campos que tengan como nombre “checkbox” mediante el método POST.
Lo primero que hacemos es comprobar si los campos con nombre “checkbox” son diferentes de vació, luego si tienen algún valor creamos un array y todos ellos (los valores) se almacenarán allí; después realizamos un ciclo while con el cual recorremos cada uno de los checkbox y si en ellos hay algún valor inmediatamente se almacena en la tabla que hemos creado en la Base de Datos, juntamente con el nombre que se ha ingresado anteriormente en el formulario.

if($_POST['checkbox'] != "") { if(is_array($_POST['checkbox'])) { while(list($key,$value) = each($_POST['checkbox'])) { $conn=mysql_connect("localhost","root","TuContraseña"); mysql_select_db("NombreDeTuBD",$conn); $sql=mysql_query("INSERT INTO prueba (nombre, deporte) VALUES ('$nombre','$value')"); } } }
Quedando el script de la siguiente manera:

<? $nombre=$_POST['nombre']; if($_POST['checkbox'] != "") { if(is_array($_POST['checkbox'])) { while(list($key,$value) = each($_POST['checkbox'])) { $conn=mysql_connect("localhost","root","TuContraseña"); mysql_select_db("NombreDeTuBD",$conn); $sql=mysql_query("INSERT INTO prueba (nombre, deporte) VALUES ('$nombre','$value')"); } } } ?>

Si les sirve comenten y compartan
-Un gran abrazo a todos.

0 comentarios:

Publicar un comentario