Foros del Web » Programando para Internet » PHP »

ayuda en formulario php de respuestas

Estas en el tema de ayuda en formulario php de respuestas en el foro de PHP en Foros del Web. hola bueno es que no se como hacer para guardar las variables, es que miren tengo tengo una bd donde en una tabla estan las ...
  #1 (permalink)  
Antiguo 30/10/2007, 10:47
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 10 meses
Puntos: 3
ayuda en formulario php de respuestas

hola bueno es que no se como hacer para guardar las variables, es que miren tengo tengo una bd donde en una tabla estan las preguntas y en otra tabla quiero que se guarden las respuestas, las preguntas ya estan dadas de alta en las tablas pero a la hora que imprimo las preguntas no se que nombre ponerle a las variables para que se guarden, miren estos son mis codigos

este me imprime las preguntas que estan en la base de datos y se agrega el campo respuesta para que uno pueda contestarla, pero en la parte de respuesta no se como usarla cuando la mande al respuesta.php

<?php
include("config.php");

$numero_de_cuestionario=$_POST["numero_de_cuestionario"];

$query="SELECT * FROM preguntas WHERE numero_de_cuestionario='".$numero_de_cuestionario. "'";
$Result=mysql_query($query) or die (mysql_error());


echo "",$registro['pregunta'],"";
echo "<br>";

echo "<form method='POST' action='respuesta.php'>";

echo "<table border=0>";

while ($registro = mysql_fetch_array($Result)) {

echo "<td width=30%>Pregunta:</td><td>",$registro['pregunta'],"</td><tr>";
echo "<td width=30%>Respuesta:</td><td> <input name='respuesta' id='respuesta' size='50'> </td><tr>"; // en esa parte si me imprime por ejemplo 4 preguntas me imprime tambien 4 espacios para que se contesten, pero no se que nombre ponerle o como para que cuando se envie a respuesta.php se ponga cada respuesta en su pregunta,
}
echo "<td><input type='submit' value='Guardar' name='enviar'></td></table>";


mysql_close($conecta);

?>

este es el respuesta.php

<?php
include("config.php");


$respuesta=$_POST["respuesta"];

$query="INSERT INTO respuesta (respuesta) VALUES ('$respuesta')";


$Result=mysql_query($query) or die (mysql_error());
$filasafectadas=mysql_affected_rows();
if ($filasafectadas==1){
echo "respuesta agregada";
}else{
echo "respuesta no agregada";
}

mysql_close($conecta);

?>
  #2 (permalink)  
Antiguo 30/10/2007, 11:25
Avatar de ftabilo  
Fecha de Ingreso: junio-2007
Ubicación: En el Pc
Mensajes: 139
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: ayuda en formulario php de respuestas

Hola, asignale un Id a cada pregunta, y luego dale ese mismo Id al nombre del campo de texto, luego hace un insert cuando el nombre Id coincida con el de la pregunta.

Creo que deberías cambiar el modelamiento de tu base de datos, e incluir en la misma tabla de preguntas, las respuestas.

Nos podrias mostrar el diseño de tu BD y asi te podriamos sugerir mejoras.

Saludos
  #3 (permalink)  
Antiguo 30/10/2007, 11:44
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: ayuda en formulario php de respuestas

Código PHP:
<?php
include("config.php");

$numero_de_cuestionario=$_POST["numero_de_cuestionario"];

$query="SELECT * FROM preguntas WHERE numero_de_cuestionario='".$numero_de_cuestionario"'"
$Result=mysql_query($query) or die (mysql_error());


echo 
"",$registro['pregunta'],"";
echo 
"<br>";

echo 
"<form method='POST' action='respuesta.php'>";

echo 
"<table border=0>";

while (
$registro mysql_fetch_array($Result)) {

echo 
"<td width=30%>Pregunta:</td><td>",$registro['pregunta'],"</td><tr>";
//en la siguiente línea debes cambiar $registro['id_pregunta'] por el nombre correspondiente al id primario de la tabla preguntas para luego cargarlas en la tabla respuestas
echo "<td width=30%>Respuesta:</td><td> <input name='respuesta[" $registro['id_pregunta'] . "]' id='respuesta[" $registro['id_pregunta'] . "]' size='50'> </td><tr>"// en esa parte si me imprime por ejemplo 4 preguntas me imprime tambien 4 espacios para que se contesten, pero no se que nombre ponerle o como para que cuando se envie a respuesta.php se ponga cada respuesta en su pregunta,
}
echo 
"<td><input type='submit' value='Guardar' name='enviar'></td></table>";


mysql_close($conecta);

?>
este es el respuesta.php

Código PHP:
<?php
include("config.php");

//los valores de los inputs llegan como una matriz p.e.:
//$_POST['respuesta'] = array(12=>'', 15=>'respuesta a la pregunta id=5', ..., etc);
foreach($_POST["respuesta"] as $k => $v){
if(!empty(
$v)){
$id_pregunta $k;
$respuesta $v;
}
}

//deberías agregar en la tabla respuesta un campo id_pregunta en el cual colocas el id primario de la tabla preguntas para luego poder hacer las relaciones de pregunta->respuestas
$query="INSERT INTO respuesta (id_pregunta,respuesta) VALUES ('$id_pregunta','$respuesta')";


$Result=mysql_query($query) or die (mysql_error());
$filasafectadas=mysql_affected_rows();
if (
$filasafectadas==1){
echo 
"respuesta agregada";
}else{
echo 
"respuesta no agregada";
}

mysql_close($conecta);

?>
  #4 (permalink)  
Antiguo 30/10/2007, 22:14
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 10 meses
Puntos: 3
Re: ayuda en formulario php de respuestas

hola, gracias, estaba probandolo pero solo me guarda la primera respuesta del cuestionario y las demas no.
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 21:56.