Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/06/2004, 12:43
Avatar de sedinho
sedinho
 
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias por responder. Vamos a ver:
Efectivamente, como bien dices, creo un formulario para poder recoger de una sola vez todos los datos de un test, lo hago de esta forma:


<form name="test" method="get" action="creartest.php" onSubmit="return Validar()">

<script language="javascript" type="text/javascript">

for (i=1; i<11; i++)

{

document.write("Pregunta " + i + ": <input type='text' name='p" + i + "' size='100' maxlength='200'>");
document.write("<p style='margin-left: 20px;'>Respuesta a:<input type='text' name='r" + i + "a' size='100' maxlength='200'></p>");
document.write("<p style='margin-left: 20px;'>Respuesta b:<input type='text' name='r" + i + "b' size='100' maxlength='200'></p>");
document.write("<p style='margin-left: 20px;'>Respuesta c:<input type='text' name='r" + i + "c' size='100' maxlength='200'></p>");
document.write("<p style='margin-left: 20px;'>Respuesta d:<input type='text' name='r" + i + "d' size='100' maxlength='200'></p>");
document.write("<p style='margin-left: 20px;'>Respuesta Correcta:<select name='rc" + i + "'>");
document.write("<option value='a'>a</option>");
document.write("<option value='b'>b</option>");
document.write("<option value='c'>c</option>");
document.write("<option value='d'>d</option>");
document.write("</select></p>");
document.write("<hr>");
}

</script>

De esta forma, se genran 10 (que es realmente lo que necesitaba, no 5 como os puse antes) campos para preguntas y por cada campo para preguntas se crean 4 campos para respuesta y uno para decir cual de esas cuatro es la correcta.
Esto funciona bien.

Luego, en el formulario "creartest.php" recojo todas las variables creadas antes y las meto en la basse de datos asi:

for ($i=1; $i<11; $i++)
{
$pregunta="p".$i;
$respuesta_a= "r".$i."a";
$respuesta_b= "r".$i."b";
$respuesta_c= "r".$i."c";
$respuesta_d= "r".$i."d";
$rcorrecta= "rc".$i;

$p=$$pregunta;
$a=$$respuesta_a;
$b=$$respuesta_b;
$c=$$respuesta_c;
$d=$$respuesta_d;
$r=$$rcorrecta;

//Lo de arriba lo hago porque no se recogerlas de otra forma. Se que no esta bien, asi que si alguien
//me puede decir una forma mejor se lo agradeceria

//elegimos la consulta

$sql = "INSERT INTO preguntas (pregunta,ra,rb,rc,rd,rcorrecta) VALUES ('$p','$a','$b','$c','$d','$r')";
//He quitado la forma r-a por ra a secas porque me daba problemas
//A la hora de añadir solo añado pregunta,ra,rb,rc,rd y rcorrecta. Hay otro campo que es
//id_pregunta, pero es autonumerico y es la PK y se actualiza solo.

//Enviamos la consulta. En $consulta recibimos la respuesta
$consulta= mysql_query($sql,$link) or die ('No se puede insertar datos por la siguiente razón: ' . mysql_error());


}

Todo esto lo hace bien, es decir, que la tabla PREGUNTAS se va creando y actualizando correctamente. Ahora solo me falta que cuando se añadan a la tabla PREGUNTAS cada una de estas preguntas, a la vez se añada a la tabla TEST cada uno de los id_pregunta en su correspondiente campo (es decir, la primera pregunta de esta ristra añada su id_pregunta en p-1 de la tabla TEST, la segunda pregunta añada su id_pregunta en la p-2 de la tabla TEST y asi sucesivamente).


¡¡¡Uffffff. Vaya cacho de trozo que os he soltado!!! En fin, a ver si me he explicado bien y me podeia ayudar. Gracias de nuevo