PHP mysql使用ORDER BY DESC对行进行排序

PHP mysql使用ORDER BY DESC对行进行排序,php,mysql,sorting,Php,Mysql,Sorting,我正在创建一个游戏使用统一它是PHP布拉布拉。。。 你我有一些小事情需要弄清楚来整理这一行。 问题是,这是一个我需要对玩家进行分类的游戏。 例如,如果玩家3离开/离开游戏,则玩家3拥有uid 2 那么我们只有玩家1玩家2和玩家4他们有0 1 3 player1 = 0 player2 = 1 player3 = 2 player4 = 3 所以我需要做的是将其排序,这样如果player3离开uid2 我需要做分类 它会走这条路 player4 = 3 player2 = 1 player1 =

我正在创建一个游戏使用统一它是PHP布拉布拉。。。 你我有一些小事情需要弄清楚来整理这一行。 问题是,这是一个我需要对玩家进行分类的游戏。 例如,如果玩家3离开/离开游戏,则玩家3拥有uid 2

那么我们只有玩家1玩家2和玩家4他们有0 1 3

player1 = 0
player2 = 1
player3 = 2
player4 = 3
所以我需要做的是将其排序,这样如果
player3离开uid2
我需要做分类 它会走这条路

player4 = 3
player2 = 1
player1 = 0
我使用了排序($row=mysql\u fetch\u array($sql)),但我只得到了一个错误 我还使用了
排序($row['players')
$row['players']
这是
0123
但这并不是对我需要的东西进行排序,而是对它进行排序,结果就是这样

player1 = 3
player2 = 1
player4 = 0
这是错误的,现在的球员和现在的球员不一样

帮帮我,什么是正确的代码

我希望大家都明白我需要解决的问题

我也尝试使用球员的顺序,但这并不好。我知道还有更详细的订单

我有更多的解释,这是我需要解决的顺序/排序问题

GameID   Turn   
3         2
6         1
7         2
5         2
8         0
9         1

return should be { for example GameID 6 is TURN for the Game or Left in the Game }
GameID   Turn
6         1
9         1
8         0
3         2
5         2
7         2

another example { for example GameID 7 is TURN for the Game or Left in the Game }
GameID   Turn
7         2
3         2
5         2
8         0
9         1
6         1
这是我的问题

$email_val = email@sample.com';

if( $email_val != null ){
    $sqlCheckError = mysql_query( "SELECT * FROM game WHERE player1 = '".$email_val."' || player2 = '".$email_val."' || player3 = '".$email_val."' || player4 = '".$email_val."' " ) or die ( mysql_error() );
    $gameCheck = mysql_fetch_array($sqlCheckError);
    // CHECK FOR GAMEID ERROR
    $gameIDCheck = $gameCheck['gameID'];
    // EMAIL EQUAL TO THE CURRENTTURN WHERE ID
    $sql = mysql_query( "SELECT * FROM game WHERE player1 = '" . $email_val . "' || player2 = '".$email_val."' || player3 = '".$email_val."' || player4 = '".$email_val."' " ) or die ( mysql_error() );
    // FIXED THE SORT OF 
    while ( $row = mysql_fetch_array( $sql ) ) {                
        $p1 = $row['player1'];
        $p2 = $row['player2'];
        $p3 = $row['player3'];
        $p4 = $row['player4'];

        if ($asterisk > 0) {
            echo "*";
        }
        echo $row['gameID'] . '|';
        echo $row['gameStatus'] . '|';

        echo $getNameLower->_NAME_LOWER_PLAYER_ONE_( $p1 );
        echo $getNameLower->_NAME_LOWER_PLAYER_TWO_( $p2 );

        if ( !empty( $p3 ) ){
            echo $getNameLower->_NAME_LOWER_PLAYER_THR_( $p3 );
        } else {
            echo '';
        }
        if ( !empty( $p4) ){
            echo $getNameLower->_NAME_LOWER_PLAYER_FOU_( $p4 );
        } else {
            echo '';
        }

        echo '|' . $row['start'];
        echo '|' . $row['currentTurn'];
        echo '|' . $row['lastWord'];
        echo '|' . $row['lastPlayer'];
        echo '|' . $row['lastPoints'];

        $cur = $row['currentTurn'];
        // CHECK THE CurrentTurn then PUT IT AS PICURL
        if ( $cur == '0' ) { echo $getPIC->purl_1( $p1 ); } 
        elseif( $cur == '1' ) { echo $getPIC->purl_2( $p2 ); }
        elseif( $cur == '2' ) { echo $getPIC->purl_3( $p3 ); }
        elseif( $cur == '3' ) { echo $getPIC->purl_4( $p4 ); }

        $asterisk++;
    }

    if( $gameIDCheck == null ){
        echo '0';           
    }
}
else{
    echo '0';
}

是的,我一开始也这么认为。Order By真的很容易对所有内容进行排序。但是它不会像这样排序2 0 1和
1 2 0
,因此,如果我们使用DESC 2 1 0和ASC 0 1 2的顺序,我希望它现在很清楚

尝试使用它来保留索引关联。

是的。使用ORDER BY DESC在查询本身中执行排序。。它使生活更容易

玩家下单的问题是什么?在数据库中排序要比在PHP中排序好得多。您能发布您的查询吗?这样,我就可以看到它是否有错误=)我们不能使用顺序,因为我发布了另一个示例。。如果我们这样做的话,它会像
2110
那样按顺序排序,而不会像
2101
那样排序,这正是我们需要的。是的,我一开始也这么认为。Order By真的很容易对所有内容进行排序。但是它不会对像这样的东西进行排序,因此,如果我们使用DESC
2110
和ASC
0112
的顺序,我希望现在就清楚了。。。