Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取PHP中未存储在mysql中的总值的排名_Php_Mysql_Ranking - Fatal编程技术网

获取PHP中未存储在mysql中的总值的排名

获取PHP中未存储在mysql中的总值的排名,php,mysql,ranking,Php,Mysql,Ranking,您好,我正在开发一个评分系统,该系统将显示所有用户的所有分数,并使用PHP从MySQL对其进行汇总。结果很好,计算也很好(计算是用php完成的,而不是用MySQL)。现在我的问题是,我如何将总分从高到低排列 代码如下: $sel_query="Select * from tbl_scores"; $result = mysql_query($sel_query); while($row = mysql_fetch_array($result)) { $crit_3 = $row["crit_3"

您好,我正在开发一个评分系统,该系统将显示所有用户的所有分数,并使用
PHP
MySQL
对其进行汇总。结果很好,计算也很好(计算是用
php
完成的,而不是用
MySQL
)。现在我的问题是,我如何将总分从高到低排列

代码如下:

$sel_query="Select * from tbl_scores";
$result = mysql_query($sel_query);
while($row = mysql_fetch_array($result)) {
$crit_3 = $row["crit_3"];
$crit_3a = number_format($crit_3);

$crit2_3 = $row["crit2_3"];
$crit2_3a = number_format($crit2_3);

$crit3_3 = $row["crit3_3"];
$crit3_3a = number_format($crit3_3);

$user1 = ($crit_3) ;
$user2 = ($crit2_3);
$user3 = ($crit3_3);
$divide = ($user1 + $user2 + $user3); 
$total = number_format($divide / 9  , 2, '.', '');
$average = number_format($total * 0.15 , 2, '.', '');
?>
提前感谢。

1.请停止使用(从php5.5中弃用+从php7中删除)
mysql\u*
,使用
mysqli\u*
PDO

2.在循环外部定义一个数组变量,在循环内部为该数组分配总分

3.现在您将获得一个分数数组,现在您可以使用
rshort()
方法正确获取数据

因此,代码应该如下所示:-

$sel_query="Select * from tbl_scores";
$result = mysql_query($sel_query);
$scores_array = array();//create an array
while($row = mysql_fetch_array($result)) {
$crit_3 = $row["crit_3"];
$crit_3a = number_format($crit_3);

$crit2_3 = $row["crit2_3"];
$crit2_3a = number_format($crit2_3);

$crit3_3 = $row["crit3_3"];
$crit3_3a = number_format($crit3_3);

$user1 = ($crit_3) ;
$user2 = ($crit2_3);
$user3 = ($crit3_3);
$divide = ($user1 + $user2 + $user3); 
$total = number_format($divide / 9  , 2, '.', '');
$average = number_format($total * 0.15 , 2, '.', '');
$scores_array[$row['user_name']] = $total; // assign total to the array and i assume that your table has one column name user_name for each user, change accordingly
}
rsort($scores_array);// sort the array in decending order of total scores
foreach ($scores_array as $key=>$value){ // iterate through array
      echo $key.'has scored total score:-'.$value; //print the score along with username
}
?>

注意:-请采用不会产生任何歧义的变量名称。

1.请停止使用(已弃用+已删除)
mysql\u*
,使用
mysqli\u*
PDO
。2.在循环外定义一个数组变量,在循环内为该数组分配总分。3。现在您将获得一系列分数,现在您可以使用简短的方法正确地获取数据。谢谢。但有一个问题,你的第一点是什么意思?这实际上是我第一个使用PHP的应用程序。感谢大家,实际上
mysql.*
是5.5以下php版本中使用的旧库。现在,这个库已从最新版本的php中完全删除。因此,如果使用最新版本的php,代码将无法工作。这就是我要说的,请尝试更新您的php版本。因此,您的代码将适用于每一个最新版本的php。谢谢,我将尝试进一步研究这个不推荐使用的库。再次感谢,不客气。目前php7已上市。您只需升级您正在使用的xampp/wampp/lampp/mamp即可。