Ordenar consulta MySQL en PHP

De seis Dios :

Estoy tratando de 'puntos' especie diferentes usuarios por orden (primero el más alto) descendente. Pero por el momento está siendo devuelta la consulta con el fin de la identificación del usuario (orden en que aparecen en la base de datos). No estoy seguro de lo que está mal con mi código?

El usuario puede estar en varias ligas, por lo que las primeras consultas para ver qué ligas que el usuario particular está en. Con los ID de la liga, que consulta para ver qué usuarios están en cada una de las ligas. Entonces me consulto lo que cada uno de los usuarios totales son puntos dentro de esa liga. En última instancia, quiero conseguir el rango del usuario para cada liga, pero en el momento de la consulta a fin por los puntos no está funcionando.

Muestra la imagen de cómo los puntos están saliendo. '1635' es los puntos de los usuarios que se registran en. Para la primera liga, estoy tratando de conseguir 'rango 2' muestra.

introducir descripción de la imagen aquí

// SQL query to see what leagues user is in
    $query = mysqli_query($con, "SELECT * FROM UserLeague WHERE UserID='$userid'");
    $num = mysqli_num_rows($query);

    if($num == 0) {
      echo 'You are not in any leagues';
      return;
    } else {
      echo '<div class="pleague-table">';
      echo '<div class="pleague-table-header">';
      echo '<p>PRIVATE LEAGUE</p>';
      echo '<p>CURRENT RANK</p>';
      echo '</div>';
    }

    while($leagueid = mysqli_fetch_assoc($query)) {

        $lid = $leagueid['LeagueID'];

        // Get all league info that user is in

        $query2 = mysqli_query($con, "SELECT * FROM League WHERE LeagueID='$lid'");

        // Get all users that is in each league

        $queryposition = mysqli_query($con, "SELECT UserID FROM UserLeague WHERE LeagueID='$lid'");

        while($getpoints = mysqli_fetch_assoc($queryposition)) {

          $uid = $getpoints['UserID'];

          // Get each users points in each league

          $querypoints = mysqli_query($con, "SELECT * FROM Points WHERE UserID='$uid' ORDER BY total DESC");
          while($row = mysqli_fetch_assoc($querypoints)) {
            echo $row['total']. '</br>';
          }


        }



        while($leaguename = mysqli_fetch_assoc($query2)) {
          echo '<div class="league-link">';
          echo $leaguename['Name'];
          echo '<a href="#">Options</a>';
          echo '</div>';
        }

    }
'''
Alexander Ushakov:

Usted está tratando de combinar 2 tablas: UserLeague y Puntos para seleccionar los usuarios de UserLeague y les ordenan por Puntos. Para estos casos existe sintaxis JOIN en SQL:

SELECT Points.* 
FROM Points 
RIGHT JOIN UserLeague ON Points.UserID=UserLeague.UserID 
WHERE UserLeague.LeagueID=? 
ORDER BY Points.total DESC

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=387857&siteId=1
Recomendado
Clasificación