0

データベースにクエリを実行して、最高から最低までの一連の結果を返します。しかし、クエリが結果をそのように完全に並べ替えていないようです。私のコードは次のとおりです。

$query = mysql_query("SELECT * FROM ".$stats_table." ORDER BY ppg DESC")or die(mysql_error());
$count = mysql_num_rows($query);
$i = 0;

while($row = mysql_fetch_assoc($query)) 
{
$team[$i] = $row['team'];
    $ppg[$i]  = $row['ppg'];

    $i++;
}

for($i=0;$i<$count;$i++)
{
echo "".$ppg[$i]." <br /><br />";
}

ppg 列セットをエコーアウトすると、次のようになります。

99.7

98.2

97.8

97.4

97.1

96.9

96.8

96.3

96.2

95.5

94.6

94.5

94.3

93.9

93.2

92.8

92.2

91.5

90.8

90.3

106.0

105.9

104.5

103.6

102.6

101.9

101.5

101.3

100.7

100.1 

100 未満および 100 を超えるすべての値で機能するようです。しかし、この順序を 100 未満および 100 を超える値だけでなく、すべての値で機能させるにはどうすればよいでしょうか?

ありがとう、

ランス

4

4 に答える 4

1

データ型を double、real、float などの数値に変更します。それを試してみてください。

于 2012-12-18T08:24:21.557 に答える
0

varcharppgではなく、double、real、または任意の数値を作成します。

于 2012-12-18T08:21:10.903 に答える
0

構造に触れたくない場合は、ORDER BY ABS(ppg) を使用します。

于 2012-12-18T08:23:53.257 に答える
0

PHPにソートさせることができます。

$query = mysql_query("SELECT * FROM ".$stats_table)or die(mysql_error());

$i = 0;
while($row = mysql_fetch_assoc($query)) {
    $team[$i] = $row['team'];
    $ppg[$i]  = (int)$row['ppg'];
    $i++;
}
sort($ppg, SORT_NUMERIC);
for($i=0;$i<count($ppg);$i++) {
     echo $ppg[$i]." <br /><br />";
}
于 2012-12-18T08:29:59.630 に答える