我正在为学校做一个系统。我的问题是我无法显示每个类(class)的学生总数。我可以在 DB/phpmyadmin 中查询我需要显示的数据。但对于硬代码,它不起作用。谁能帮忙?
这是我的代码主体。
<?php
$key="";
if(isset($_POST['searchtxt']))
$key=$_POST['searchtxt'];
if($key !="")
$sql_sel=mysql_query("SElECT * FROM class_tbl WHERE class_name like '%$key%' ");
else
$sql_sel=mysql_query("SELECT * FROM class_tbl");
$i=0;
while($row=mysql_fetch_array($sql_sel)){
$i++;
$color=($i%2==0)?"lightblue":"white";
?>
<tr bgcolor="<?php echo $color?>">
<td><?php echo $i;?></td>
<td><?php echo $row['class_name'];?></td>
<td><?php echo $row['class_id'];?></td>
<td><?php echo $row['class_year'];?></td>
<td><?php
$result = mysql_query("SELECT class_name, COUNT( class_name ) FROM stu_tbl c GROUP BY class_name");
$num_rows = mysql_num_rows($result);
echo "$num_rows";
// $total_enrolled=mysql_query("SELECT COUNT( * ) FROM stu_tbl WHERE class_name = 'class_name'");
//echo $total_enrolled;
?>
如果我使用此代码,所有类的输出显示将为 6。我认为这是类(class)总数。不是注册的学生。我在 phpmyadmin 中使用的查询工作正常,它显示了我想要的输出。预先感谢您的帮助。真的很感激。
在 phpmyadmin 中,我正在使用这个查询,它工作正常。
SELECT class_name, COUNT( class_name ) FROM stu_tbl c GROUP BY class_name
我希望输出显示为:
no class_name class_id year total_student_enrolled
1 1 Amanah 1 2014 6
2 1 Bestari 2 2014 2
3 2 Amanah 9 2014 5
4 2 Bestari 14 2014 10
5 3 Amanah 15 2014 7
6 3 Bestari 16 2014 1
注册的学生总数将根据学生表中的类(class)名称从学生表中计算出来,与类(class)名称关联的学生人数将计算为 total_student_enrolled
最佳答案
循环内的这个查询是错误的,这将始终为循环的所有迭代返回相同的结果
SELECT class_name, COUNT( class_name ) FROM stu_tbl c GROUP BY class_name
而且你总是只抓取它的第一行。
应该是
SELECT COUNT(1) FROM stu_tbl c WHERE class_name= 'your variable'
这样一来,它只会为您提供该类(class)的计数。这几乎与您在评论中禁用的查询完全一样。只是你没有在那里正确使用变量名。
关于php - 显示类(class)注册学生总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690037/