Php SQL查询未正确排序结果
我正在查询数据库以返回一组从最高到最低的结果。但是,似乎查询并没有完全按照这种方式对结果排序。我的代码如下:Php SQL查询未正确排序结果,php,sql,Php,Sql,我正在查询数据库以返回一组从最高到最低的结果。但是,似乎查询并没有完全按照这种方式对结果排序。我的代码如下: $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] = $ro
$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 />";
}
似乎对于所有小于100和大于100的值都有效。但是,我如何才能使这个顺序适用于所有值,而不是仅适用于小于或大于100的值
谢谢
Lance制作
ppg
double,real或任何数字,而不是varchar。如果您不想触动您的结构,请使用ORDER BY ABS(ppg)将数据类型更改为数字,如double,real,float。试试看。您可以让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 />";
}
$query=mysql\u query(“从“$stats\u表中选择*”)或die(mysql\u error());
$i=0;
while($row=mysql\u fetch\u assoc($query)){
$team[$i]=$row['team'];
$ppg[$i]=(int)$row['ppg'];
$i++;
}
排序($ppg,sort\u NUMERIC);
对于($i=0;$i您为ppg分配了哪些数据类型?注意!PHP的下一个主要版本是弃用mysql\uww
函数族。现在是使用or.awww的好时机。这太糟糕了。我很难将其从varhcar切换到int。但是,现在的问题是,我不能在其中包含十进制值。请将您的数据类型更改为float这可能会有帮助。我也可以这样做。这比使用mysql_num_行快吗?使用count()来计算数组$ppg肯定比使用mysql_num_行的计数更聪明(更安全),因为数组$ppg可能有不同于mysql_num_行的项目数。
$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 />";
}