PHP - 想要选择特定数量的行并从 SQL 中对它们进行排序

标签 php mysql sorting

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

奖牌的总值(value)存储在 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,但不确定这里最好使用哪种方法。有什么建议吗?

最佳答案

具体方法如下。

  1. 将每一行和分配的分数读取到数组或对象中。
  2. 将其中每一个添加到“结果列表”或数组中。
  3. 根据分数对结果列表进行排序。
  4. 打印前 10 个。

由于您从数据库读取的顺序不是您希望打印的顺序,因此有必要将数据存储在临时数据结构中并对其进行排序。

如上所述。

关于PHP - 想要选择特定数量的行并从 SQL 中对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16577851/

相关文章:

PHP PDO 检查数据是否存在无法正常工作

python - 在 python 中按特定顺序对元素进行排序

javascript - 来自数据库的依赖下拉列表值

php - 在保留数组的同时使用 PHP 将 XML 转换为 JSON

mysql - 从 db 获取简单信息到 node.js http 服务器响应

mysql - 查询获取Mysql中特定单元格的值

vba - Excel VBA Excel 如何对重复值进行排序?

Java从ArrayList中删除重复出现的对象并使其唯一

php - ElasticSearch 匹配查询多条 PHP

php - 如何将 TOTAL 的结果存储在 MySQL 中,以便可以立即将其插回到表中