2015-10-16 85 views
0

我使用引导程序进度条显示统计信息。计算特定行

我想知道总共有多少个得分的10分。

$q="SELECT * FROM users"; 
$r = mysqli_query($con,$q); 
$total = mysqli_num_rows($r); 

Name email   score time 
Hello [email protected] 10 15 
Hello [email protected] 58 10 
Test [email protected] 10 12 
Stack [email protected] 90 20 
Test [email protected] 50 40 
+0

你只想知道有多少得分10?或者你希望它是动态的,并且每个数字都有一个百分比? –

+0

是在行总数中有多少得分为10,9,8,7,6,5,4,3,2,1 – Roger

回答

0

$ q =“SELECT COUNT(Name)FROM users WHERE score = '10'”;

0

你可以使用这个简单的查询,以完成它: -

SELECT COUNT(name), score 
FROM users 
GROUP BY score 

这将获得总每一个人得分(10,9,8)。 如果您只想要总价值10。改用它。

SELECT COUNT(name), score 
FROM users 
WHERE score=10 
0

通过$总阵列这将循环和分配的所有值小于10到一个数组然后循环通过该阵列打印出多少出总的为每个小于10

$total = [ 
     0 => [ 
      'name' => 'Hello', 
      'email' => '[email protected]', 
      'score' => 10, 
      'time' => 15 
     ], 
     1 => [ 
      'name' => 'Hello', 
      'email' => '[email protected]', 
      'score' => 58, 
      'time' => 10 
     ], 
     2 => [ 
      'name' => 'Test', 
      'email' => '[email protected]', 
      'score' => 10, 
      'time' => 12 
     ], 
     3 => [ 
      'name' => 'Stack', 
      'email' => '[email protected]', 
      'score' => 90, 
      'time' => 20 
     ], 
     4 => [ 
      'name' => 'Test', 
      'email' => '[email protected]', 
      'score' => 50, 
      'time' => 40 
     ], 
    ]; 

    $sizeOfArray = count($total); 
    $arrayOfScoresLessThanTen = []; 
    foreach($total as $value) { 
     if($value['score'] <= 10) { 
      if(isset($arrayOfScoresLessThanTen[$value['score']])) { 
       $arrayOfScoresLessThanTen[$value['score']] ++; 
      } 
      else { 
       $arrayOfScoresLessThanTen[$value['score']] = 1; 
      } 
     } 
    } 

    foreach($arrayOfScoresLessThanTen as $key => $scoresLessThanTen) { 
     echo 'Score: '. $key . ' number scored out of total: '. $scoresLessThanTen . '/'.$sizeOfArray; 
    } 

这已经过测试,并与我创建的数组$ total一起工作,以匹配您在表中使用的数组。我添加了我的$ total数组,以便您可以自己测试它。