-5

一定量のポイントを持っているユーザーがたくさんいるテーブルがあります。ユーザーをポイントの高い順に並べたいと思います。ただし、ORDER BY PTS DESC は機能しません。

                    <tr>
                        <th id="users_th1"><img src="<?php echo mysql_result($r_TEAMS, $i, 'LOGO'); ?>"/> <p><?php echo mysql_result($r_TEAMS, $i, 'NAME'); ?></p></th>
                        <th id="users_th2">Points Value</th>
                    </tr>
                    <?php 
                    $q_users = 'Select * from POINTS LEFT JOIN USERS on USERS.UID = POINTS.UID where TID = '.mysql_result($r_TEAMS, $i, 'TID');
                    $r_users = mysql_query($q_users, $connection) or die(mysql_error());
                    $n_users = mysql_num_rows($r_users);

                        for($k = 0; $k <$n_users; $k++){    
                    ?>



                    <tr>
                        <td class="person"><?php echo mysql_result($r_users, $k, 'NAME'); ?></td>
                        <td><?php echo mysql_result($r_users, $k, 'POINTS.PTS'); ?></td>
                    </tr>

                    <?php
                        }
                    }
4

2 に答える 2

1

これは当て推量ですが、テーブルとテーブルのJOIN間でやっているようです。おそらく、両方のテーブルで呼び出されたフィールドがあるため、そのフィールドで結果を並べ替えたい場合は、参照しているテーブルがどのテーブルに属しているかを示す必要があります。USERPOINTSPTS

では、こうやって、

$q_users = "
    SELECT *
    FROM POINTS
    LEFT JOIN USERS
    ON USERS.UID = POINTS.UID
    WHERE <table name>.TID = " . mysql_result($r_TEAMS, $i, 'TID') . "
    ORDER BY <table name>.PTS DESC";
于 2013-08-23T16:01:30.447 に答える
0

試しましたか:

$q_users = 'Select * from POINTS LEFT JOIN USERS on USERS.UID = POINTS.UID where TID = '.mysql_result($r_TEAMS, $i, 'TID').' ORDER BY PTS DESC;';

ソートしない場合、またはクエリしない場合も書くことができます。

于 2013-08-23T15:57:15.580 に答える