1
PHP / Registrando una encuesta en la base de datos
« en: 28 de Octubre de 2013, 12:47:27 pm »
Muy buenas,
Después de tantear algunos formularios que envían por web, he querido probar algo más difícil, una encuesta.
Esta encuesta es algo especial, ya que no he querido poner todas las preguntas en un mismo archivo, por lo que la he dividido en 5 archivos diferentes y un comentario a través de "input" de tipo hidden:
<input type="hidden" name="respuesta1" value="<?php echo $respuesta1; ?>" />
Esto me ha servido ya que los valores han llegado hasta el último sin errores. El problema viene a la hora de registrarlo en la base de datos desde enviar.php que me da de respuesta undefined.
Os pongo primero la base de datos:
Y luego el enviar.php:
A ver en que he fallado jeje
Gracias =)
EDIT: AMPLIO INFORMACIÓN
La encuesta se dividide en varios archivos (pregunta1.php, pregunta2.php,...pregunta5.php, comentario.php) y cada respuesta se va guardando en el tipo hidden para que se vaya pasando de uno a otro hasta llegar al último que lo envia a enviar.php que es el código php que he pegado arriba.
La idea era poder guardar las respuestas de un archivo a otro para finalmente enviarlo a la base de datos. Los únicos input que se muestran son los de la pregunta actual...por ejemplo: en pregunta3.php se muestra la pregunta 3 pero se ocultan los resultados de pregunta1.php y pregunta2.php para que no se pierdan.
Después de tantear algunos formularios que envían por web, he querido probar algo más difícil, una encuesta.
Esta encuesta es algo especial, ya que no he querido poner todas las preguntas en un mismo archivo, por lo que la he dividido en 5 archivos diferentes y un comentario a través de "input" de tipo hidden:
<input type="hidden" name="respuesta1" value="<?php echo $respuesta1; ?>" />
Esto me ha servido ya que los valores han llegado hasta el último sin errores. El problema viene a la hora de registrarlo en la base de datos desde enviar.php que me da de respuesta undefined.
Os pongo primero la base de datos:
Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `encuesta` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`pregunta1` varchar(10) NOT NULL,
`pregunta2` varchar(10) NOT NULL,
`pregunta3` varchar(10) NOT NULL,
`pregunta4` varchar(10) NOT NULL,
`pregunta5` varchar(10) NOT NULL,
`comentario` varchar(300) NOT NULL,
`fecha` datetime NOT NULL,
`restaurante` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;Y luego el enviar.php:
Código: [Seleccionar]
<?php
//recibimos las variables enviadas por el formulario
$respuesta1 = $_POST['respuesta1'];
$respuesta2 = $_POST['respuesta2'];
$respuesta3 = $_POST['respuesta3'];
$respuesta4 = $_POST['respuesta4'];
$respuesta5 = $_POST['respuesta5'];
$comentario = $_POST['comentario'];
$fecha = date("d-m-Y");
$restaurante = 'Restaurante';
//conectamos a la base
$host = "localhost";
$usuario = "usuario";
$clave = "clave";
$bd = "bd01";
$connect=mysql_connect ($host, $usuario, $clave);
// seleccionamos la base
mysql_select_db ( $bd, $connect );
// definimos la consulta
$query = "INSERT INTO encuesta (id,pregunta1,pregunta2,pregunta3,pregunta4,pregunta5,comentario,fecha,restaurante)
VALUES ('',$respuesta1','$respuesta2','$respuesta3','$respuesta4','$respuesta5','$comentario','$fecha','$restaurante')";
// hacemos la consulta
mysql_query ($query, $connect) or die (mysql_error());
?>A ver en que he fallado jeje
Gracias =)
EDIT: AMPLIO INFORMACIÓN
La encuesta se dividide en varios archivos (pregunta1.php, pregunta2.php,...pregunta5.php, comentario.php) y cada respuesta se va guardando en el tipo hidden para que se vaya pasando de uno a otro hasta llegar al último que lo envia a enviar.php que es el código php que he pegado arriba.
La idea era poder guardar las respuestas de un archivo a otro para finalmente enviarlo a la base de datos. Los únicos input que se muestran son los de la pregunta actual...por ejemplo: en pregunta3.php se muestra la pregunta 3 pero se ocultan los resultados de pregunta1.php y pregunta2.php para que no se pierdan.


