es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Exportando datos de mysql a una tabla HTML agregada utilizando PHP.

He utilizado un JOIN para seleccionar los datos de una variedad de tablas según se muestra a continuación.

image

Estoy buscando mostrar esto en una tabla HTML utilizando PHP de la manera en que está formateado a continuación (se debe crear una de estas tablas para cada game_id diferente):

image

Estoy un poco perdido porque en todos los ejemplos de tablas SQL/PHP/HTML que he buscado, no he encontrado un ejemplo en el que no se convierta simplemente la salida de una consulta SQL directamente en una tabla HTML sin manipularla. Por ejemplo, aquí.

¿Alguien puede indicarme la mejor manera de lograr esto? No estoy seguro si debería intentar escribir una consulta SQL mejor que se ajuste a lo que necesito o intentar que PHP haga el trabajo pesado.

Nota: cualquier equipo puede tener 1 o muchos jugadores.

Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar los datos de la consulta SQL en el formato de tabla HTML deseado, necesitarás utilizar PHP para manipular los datos antes de imprimirlos como HTML. Una forma de lograr esto sería utilizar bucles anidados en PHP.

    Primero, tendrías que hacer una consulta a la base de datos para obtener todos los valores únicos de game_id. Puedes utilizar la cláusula GROUP BY para lograr esto:

    SELECT game_id FROM my_table GROUP BY game_id
    

    Luego, para cada game_id, puedes obtener todos los puntos de datos relevantes utilizando un JOIN como se muestra en la consulta original. Luego utilizarás bucles anidados para iterar a través del conjunto de datos resultante y crear las filas de la tabla HTML.

    Aquí tienes un ejemplo de código PHP:

    // consulta para obtener los valores únicos de game_id
    $gameIdQuery = "SELECT game_id FROM my_table GROUP BY game_id";
    $result = mysqli_query($con, $gameIdQuery);
    
    // iterar a través de cada game_id único
    while ($gameIdRow = mysqli_fetch_assoc($result)) {
      $gameId = $gameIdRow['game_id'];
    
      // consulta para obtener todos los datos relevantes para este game_id
      $gameDataQuery = "SELECT *
                        FROM my_table t
                        JOIN other_table o ON t.other_id = o.id
                        WHERE t.game_id = '$gameId'";
      $gameDataResult = mysqli_query($con, $gameDataQuery);
    
      // crear la tabla HTML para este game_id
      echo "<table>
              <thead>
                <tr>
                  <th>Equipo</th>
                  <th>Nombre del Jugador</th>
                  <th>Puntuación del Jugador</th>
                </tr>
              </thead>
              <tbody>";
    
      // iterar a través de cada punto de datos y crear una fila en la tabla HTML
      while ($gameDataRow = mysqli_fetch_assoc($gameDataResult)) {
        $team = $gameDataRow['team_name'];
        $playerName = $gameDataRow['player_name'];
        $playerScore = $gameDataRow['player_score'];
    
        echo "<tr>
                <td>$team</td>
                <td>$playerName</td>
                <td>$playerScore</td>
              </tr>";
      }
    
      echo "</tbody></table>";
    }
    

    En este ejemplo, $con es el objeto de conexión a la base de datos, y deberás reemplazar my_table, other_table y los nombres de columna con los valores apropiados para tu conjunto de datos.

    La salida HTML resultante debería ser una serie de tablas, una para cada game_id único, con los datos formateados de la manera deseada.

Comments are closed.