我有一个旨在创建评分方法的公式。用户输入的值应为“gold”,“silver”和“bronze”。然后在数据库中找到这些奖牌,并将每个奖牌的总数乘以用户指定的数量。用户也选择“优先级值”,这与表中的单独字段有关。
奖牌的总价值存储在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_array,但不确定哪种方法最好在这里使用。有什么建议吗?
答案 0 :(得分:0)
这是怎么做的。
由于您从数据库读取的订单不是您希望打印的订单,因此必须将数据存储在临时数据结构中。解决。
如上所述。
答案 1 :(得分:0)
如果我理解正确,这个SQL会返回你想要的结果:
select t.*, priority / medaltotal as score
from table t
order by score desc
limit 10