Php y Sql Rescatar valor checkbox formulario

Tengo un formulario php donde existe un control checkbox, la información se envía mediante post a un fichero llamado registra.php que trata esos datos y los escribe en una tabla de una bd. Todos los campos se traspasan correctamente pero el valor del checkbox no consigo que se almacene en la bd.

Adjunto los dos ficheros, y un pantallazo de la estructura de la tabla. Todos los campos se almacenan pero no consigo que el campo checkbox se almacene en la tabla.

He probado de varios maneras pero no lo consigo... Ayuda please!

Código formulario:

<html>
<head>
<title>Guardar datos en una base de datos</title>
</head>
<body>
<form method="POST" action="registra.php">
<p>Nombre: <input type="text" name="nombre" size="20"></p>
    <p>Fecha: <input type="text" value="<?php echo date("Y-m-d");?>" name="fecha" size="10" readonly="true">
    <p>¿ES un ciclomotor?<input type="checkbox" name="check" id="check" value="1">
    <p>Marca y Modelo: <input type="text" name="marca" size="20"></p>
    <p>Matrícula: <input type="text" name="matricula" size="20"></p>
    <p>Valor Fiscal: <input type="number" name="valor" size="20"></p>
    <p><input type="submit" value="Guardar datos" name="B1"></p>
</form>
</body>
</html>

Código archivo registra.php

<html>
<head>
<title>Guardamos los datos en la base de datos</title>
</head>
<body>
<?php   
// Recibimos por POST los datos procedentes del formulario   
$nombre = $_POST["nombre"];   
$marca = $_POST["marca"];
$matricula = $_POST["matricula"];   
$fecha = $_POST["fecha"];  
$valor = $_POST["valor"];
$tipo = 0.06;
$TPO = $valor*$tipo;
$dgt = 54;
$colegio = 3.75;
$honorarios = 54.5;
$iva = $honorarios*0.21;
$total = $TPO+$dgt+$colegio+$honorarios+$iva;
$check = @boolval($_POST["check"]);
echo $check;
echo $tipo;
echo "<br>";
echo $TPO;
// Abrimos la conexion a la base de datos   
include("abre_conexion.php");   
$_GRABAR_SQL = "INSERT INTO $tabla_db1 (nombre,marca,matricula,fecha,valor,TPO,dgt,colegio,honorarios,iva,total) VALUES ('$nombre','$marca','$matricula','$fecha','$valor','$TPO','$dgt','$colegio','$honorarios','$iva','$total')";   
mysql_query($_GRABAR_SQL);  
// Cerramos la conexión a la base de datos
include("cierra_conexion.php");
// Confirmamos que el registro ha sido insertado con éxito
echo "
<p>Los datos han sido guardados con éxito.</p>
<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p>
";   
?>
<p>
<a href=http://localhost/presupuestos/consulta_ultimo.php>Listar último</a>
<p>
<a href=http://localhost/presupuestos/consulta.php>Listar los presupuestos</a>
<p>
</body>
</html>

1

1 Respuesta

172.605 pts. O eres parte de la solucion, o eres parte del problema.

(Nombre, marca, matricula, fecha, valor, TPO, dgt, colegio, honorarios, iva, total)

Falta ciclomotor ahí, ¿no?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas