Despues de cada header() de tipo "Location" debes terminar la ejecución de tu script ..
La función header() con la cabecera HTTP "location" indica a tu "cliente" (navegador) que cambien la página que está "visulalizando" .. pero todo esto lo hará cuando la ejecución del script termine y el "buffer" de salida de PHP sea entregado al "cliente" (tu navegador) para que ejecute su parte .. en tu caso la orden "cambia la página a tal otro URL" si es que llega el caso.
Por ende .. tu "objetivo" si usas header("Location ...") es que la ejecución del script termine ahí y que se mande a llamar a tu otra página/script .. por eso es necesario formar a terminar la ejecución de tu script en ese punto con un exit despues de tu location:
header ("Location: .....");
exit;
Por lo demás .. no sé que siginifica esto:
if(mysql_affected_rows($conexion)($num_resp_env)) {
entre una expresión y otra .. falta un operador lógico no? .. == != && .. || .. u otro.
Otro detalle:
$qry1="SELECT id FROM encuesta ORDER BY fecha LIMIT 0,1";
ahí estás forzando a un sólo resultado de tu consulta SQL a tu tabla "encuesta". Realmente el "último ID generado tras un INSERT" a una tabla NO deberías obtenerlo como lo haces (por fecha y mostrando un sólo resultado) .. eso no es nada seguro .. Debes usar la función:
mysql_insert_id()
http://www.php.net/manual/en/functio...-insert-id.php
En los arrays en general . usa comillas para referirte a sus indices:
Código PHP:
$qry2="INSERT INTO respuestas (id_encuesta,pregunta) VALUES('".$fila1['id']."','$opcion')";
Un saludo,
PD: deberías poner el código completo que usas incluido ese Formulario para hacerse una idea de que variables y de que tipo están llegando a ese script .. Pero antes usa los exit despues de los header("location ...")
PD2: Como veras no te resuelvo tu pregunta puntual ..pero si lo "que debería ser" no lo corriges es problable que por ahí vengan muchos errores e incluso el que mencionas en este caso concreto.