Me refería a chapuza al tener que usar varias llamadas a la consulta pero con diferentes id_ronda y poniendo el nombre de la ronda fuera de la consulta.
He probado con tu consulta, haciendole algunas modificaciones porque tenía algún error:
Código PHP:
Ver original<?php
$conexion = conecta_base_datos();
$id_torneo = (isset($_GET["id"])) ?
$_GET["id"] : exit();
$ssql = "SELECT TI.id_torneo, TR.id_ronda, TR.nombre_ronda, TE.id_partido , TE.`user_id_1`, U1.username User1, TE.`user_id_2`, U2.username User2 ";
$ssql .= "FROM `torneos_partidos` TE ";
$ssql .= " INNER JOIN `torneos_inscripcion` TI ON TI.`user_id` = TE.`user_id_1`";
$ssql .= " INNER JOIN `torneos_rondas` TR ON TR.`id_ronda` = TE.`id_ronda` ";
$ssql .= " INNER JOIN `usuarios` U1 ON TE.`user_id_1` = U1.user_id";
$ssql .= " INNER JOIN `usuarios` U2 ON TE.`user_id_1` = U1.user_id";
//$ssql .= " INNER JOIN `torneos_rondas` TR ON TR.`id_ronda` = TE.`id_ronda` ";
$ssql .= " WHERE TE.`id_torneo` = '$id_torneo' ";
$ssql .= " ORDER BY TR.id_ronda";
echo $ssql;
// verificando la query
echo '<a href="' . $fila[user_id_1] . '">' . $fila[User1] . '</a>';
echo ' vs ';
echo '<a href="' . $fila[user_id_2] . '">' . $fila[User2] . '</a><br>';
}
?>
La línea que comento estaba repetida y algún campo no era correcto y prefería ordenarlo por las rondas.
De todas formas no me ofrece el resultado correcto, ya que me hace un emparamiento con el resto de usuarios de la tabla de usuarios aunque no estén isncritos en el torneo y repite varias veces el mismo partido:
He probado modificando la consulta a ver si lograba conseguir otro resultado pero sin éxito:
Código PHP:
Ver original<?php
$conexion = conecta_base_datos();
$id_torneo = (isset($_GET["id"])) ?
$_GET["id"] : exit();
$ssql = "SELECT TI.id_torneo, TR.id_ronda, TR.nombre_ronda, TE.id_partido , TE.`user_id_1`, U1.username User1, TE.`user_id_2`, U2.username User2 ";
$ssql .= "FROM `torneos_partidos` TE ";
$ssql .= " INNER JOIN `torneos_inscripcion` TI ON TI.`user_id` = TE.`user_id_1`";
$ssql .= " INNER JOIN `torneos_rondas` TR ON TR.`id_ronda` = TE.`id_ronda` ";
$ssql .= " INNER JOIN `usuarios` U1 ON TE.`user_id_1` = U1.user_id";
$ssql .= " INNER JOIN `usuarios` U2 ON TE.`user_id_1` = U1.user_id";
$ssql .= " INNER JOIN `torneos_partidos` TP ON TP.`id_partido` = '$id_torneo'";
$ssql .= " WHERE TE.`id_torneo` = '$id_torneo' ";
$ssql .= " ORDER BY TR.id_ronda";
echo $ssql;
// verificando la query
echo '<a href="' . $fila[user_id_1] . '">' . $fila[User1] . '</a>';
echo ' vs ';
echo '<a href="' . $fila[user_id_2] . '">' . $fila[User2] . '</a><br>';
}
?>
Debería mostrar dos partidos de la ronda 1 y un partido de la ronda 2.