Llamadas recursivas a un formulario.

Hola.
Estoy intentando crear una pequeña aplicación y me encuentro con un problema que no se como solucionar. He estado buscando en Google y o no lo interpreto o no encuentro la forma de solucionarlo. Igualmente he probado con distintas opciones que se me han ocurrido y el resultado ha sido el mismo.
Os cuento...
Estoy llamando a un .php que ejecuta una consulta selecionando un solo registro de forma aleatoria, y posteriormente si el usuario quiere continuar con otro registro llamaría al mismo .php y asi sucesivamente hasta que el usuario decida finalizar el proceso. El problema lo tengo porque este .php realiza la consulta en base a una variable que la primera vez es conocida puesto que viaja del formulario anterior, pero que para las sucesivas veces que el .php es llamado de forma recursiva desde el mismo, me presenta una ventana de error porque no ha encontrado ningun registro, cosa no cierta porque la consulta en el caso de realizarla conociendo el valor de la misma variable siempre debería de encontrar algun registro, lo que significa que a partir de la llamada recursiva ha dejado de verla.

Pego el código obviando la conexión a la BBDD mysql y demás detalles que entiendo no son importantes:

$consulta = "SELECT
FROM tema_pregunta
WHERE tema_pregunta.idtema = $idtema
order by rand()limit 1";

$resultado = mysql_query($consulta);
$num_resultados = mysql_num_rows($resultado);

if ($num_resultados < 1)
{
echo "No existen \"Preguntas y Respuestas\" con esta selección.";
exit;
}

$row = mysql_fetch_array($resultado);
$pregunta = stripslashes($row["idpregunta"]);

$consulta1 = "SELECT preguntas.descpregunta, respuestas.descrespuesta,
respuestas.valida
FROM preguntas, respuestas
WHERE preguntas.idpregunta = $pregunta and
preguntas.idpregunta = respuestas.idpregunta";

$resultado1 = mysql_query($consulta1);
$num_resultados1 = mysql_num_rows($resultado1);

if ($num_resultados1 < 1)
{
echo "No existen \"Preguntas y Respuestas\" con esta selección.";
exit;
}

$pre=0;
while ($row1 = mysql_fetch_array($resultado1)){
if($pre==0){
echo "<div id=\"preg\"><p>".stripslashes($row1["descpregunta"])."</p></div>";
echo "<br />";
echo "<br />";
$pre=1;
}
echo "<br />";
echo "<div id=\"paginacion\">";
echo "<span class=\"izq\">";
echo "<p class=\"corto\">".stripslashes($row1["descrespuesta"])."</p>";
echo "</span>";
echo "<span class=\"der\">";
echo "<input type=radio name=\"respuestas\" value=".stripslashes($row1["idrespuesta"])." />";
echo "</span>";
echo "<div class=\"clear\"></div>";
echo "</div>";
}
echo "<br />";
echo "<br />";

$i=false;
echo "<table>";
do {
echo "<tr>";
echo "<td>";
echo "<div id=\"ok\">";
echo "<form action=\"repaso.php\" method=\"post\">";
echo $row = mysql_fetch_array($resultado);
echo $idtema = stripslashes($row["idtema"]);
echo "<input type=submit id=\"botonok\" value=\"OK\" />";
echo "</form>";
echo "</div>";
echo "</td>";
echo "<td>";
echo "<div id=\"salir\">";
echo "<input type=\"button\" id=\"botonsalir\" name=\"salir\" value=\"Salir\" onclick=\"history.go(- history.length)\" />";
echo "</div>";
echo "</td>";
echo "</tr>";
}
while($i=false);
echo "</table>";

Soy bastante nuevo en esto con lo que es posible que existan innumerables mejoras, pero bueno lo que me tiene enganchado es el problema que os comento.
Muchas gracias.
Buenas.
Seguramente no es la manera mas académica o quizás si, pero lo paso de esta manera:

echo "<input type=\"hidden\" name=\"idtema\" value=".stripslashes($row["idtema"])." />";

En cualquiera de los casos, agradecería comentarios que me hagan depurar ideas.
Gracias.
Hola, ¿el resultado es este: "No existen \"Preguntas y Respuestas\" con esta selección."? Puede que me equivoque, pero la primer consulta que realizas a la base de datos esta mal formada, debe ser así: SELECT * FROM tabla WHERE campo='valor'. El asterisco extrae todas las columnas de la base de datos; es como decir "selecciona todo de tabla donde campo sea igual a este valor". Si quieres seleccionar solo algunas columnas de la tabla, entonces puedes separar la lista de columnas con comas: SELECT column1, column2, columnN FROM tabla WHERE campo = valor.

Intenta con eso y publica tus resultados, saludos.
Hola.
No es la consulta. No se porque pero he debido de hacer mal el "copia y pega" o por alguna razón ha truncado el asterisco, pero la select era correcta.
Debía de estar construyendo mal la linea en el formulario que pasaba el parámetro.

echo "<input type=\"hidden\" name=\"idtema\" value=".stripslashes($row["idtema"])." />";

Al menos de esta forma me ha funcionado.
Muchas gracias y saludos.