2015-10-16 2 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

$ д = "SELECT COUNT (Name) из пользователей, где оценка = '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, чтобы вы могли проверить его для себя.

Смежные вопросы