php - Get multiple "number of rows" in mysql -
php - Get multiple "number of rows" in mysql -
i have table of questions, each question have level it's hardness 1 4, want number of rows of question of same level.
this tried:
$result1 = mysqli_query($con,"select * questions level=1"); $result2 = mysqli_query($con,"select * questions level=2"); $result3 = mysqli_query($con,"select * questions level=3"); $result4 = mysqli_query($con,"select * questions level=4"); $n1 = mysqli_num_rows($result1); $n1 = mysqli_num_rows($result2); $n1 = mysqli_num_rows($result3); $n1 = mysqli_num_rows($result4); well, it's bad , utilize 4 queries that. way in mind utilize php :
$level = array(0,0,0,0); $result = mysqli_query($con,"select * questions"); while($res = mysqli_fetch_array($result)){ switch ($res['level']){ case '1': $level[0]++; break; case '2': $level[1]++; break; case '3': $level[2]++; break; case '4': $level[3]++; break; default: echo "wtf"; } } echo "level 1 :$level[0]<br>level 2 :$level[1]<br>level 3 :$level[2]<br>level 4 :$level[3]<br>"; this utilize php , not mysql, looks faster. there other faster way accomplish this? what's best way?
i think want group by query:
select level, count(*) questions grouping level; edit:
it might easier if using conditional aggregation 1 row of data:
select sum(level = 1) num1, sum(level = 2) num2, sum(level = 3) num3, sum(level = 4) num4 questions; this produces 4 variables in 1 row, can readily access in php.
php mysql
Comments
Post a Comment