PHP-希望选择特定数量的行并从SQL中对其排序

PHP-希望选择特定数量的行并从SQL中对其排序,php,mysql,sorting,Php,Mysql,Sorting,我有一个公式,旨在创建一个评分方法。用户输入一个“金”、“银”和“铜”的值。然后在数据库中找到这些奖牌,每个奖牌的总数乘以用户指定的数量。“优先级值”也由用户选择,这与表中的单独字段有关 奖牌的总价值存储在medaltotal变量中。优先级值除以此变量得出总分 到目前为止,所有这些都如预期的那样起作用 我现在需要按照上面方法定义的最高“分数”到最低“分数”的顺序对表进行排序。一旦完成,它应该只回显前10个结果,以便根据分数给出“前10名” 到目前为止,我使用的相关代码如下: while ($ro

我有一个公式,旨在创建一个评分方法。用户输入一个“金”、“银”和“铜”的值。然后在数据库中找到这些奖牌,每个奖牌的总数乘以用户指定的数量。“优先级值”也由用户选择,这与表中的单独字段有关

奖牌的总价值存储在medaltotal变量中。优先级值除以此变量得出总分

到目前为止,所有这些都如预期的那样起作用

我现在需要按照上面方法定义的最高“分数”到最低“分数”的顺序对表进行排序。一旦完成,它应该只回显前10个结果,以便根据分数给出“前10名”

到目前为止,我使用的相关代码如下:

while ($row = $res->fetchRow()) {
    $priorityvalue = ($row('gdp') / 100000000);
    $goldvalue = $row[strtolower('gold')] * $gold;
    $silvervalue = $row[strtolower('silver')] * $silver;
    $bronzevalue = $row[strtolower('bronze')] * $bronze;
    $score = ($priorityvalue / $medaltotal);
}
我正在考虑修补mysql_fetch_数组,但不确定从这里使用哪种方法最好。有什么建议吗?

以下是方法

  • 将每一行和分配的分数读入数组或对象
  • 将它们中的每一个添加到“结果列表”或数组中
  • 根据分数对结果列表进行排序
  • 打印前10页
  • 由于从数据库中读取的顺序不是要打印的顺序,因此有必要将数据存储在临时数据结构中并进行排序


    如上所述。

    如果我理解正确,此SQL将返回您想要的结果:

    select t.*, priority / medaltotal as score
    from table t
    order by score desc
    limit 10
    

    你能提供样本数据和预期结果吗?一、 首先,我不明白你在做什么。例如,一个用户只有一行,那么您要订购什么?