Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 合并具有不同名称的教员人数_Php_Sql_Count_Sum - Fatal编程技术网

Php 合并具有不同名称的教员人数

Php 合并具有不同名称的教员人数,php,sql,count,sum,Php,Sql,Count,Sum,我有一个教员有三个名字,分别是JABFNT、FPKF和JABPN。我想计算每个名字中的学生人数,然后将其合并为一个总数。在数据库中,JABFNT有2名学生,FPKF有1名学生,JABPN有1名学生。因此,输出应该总共有4个学生。我没有找到如何组合它的解决方案,所以这是我尝试过的代码,但我得到的输出是0 include("../connection_jpp.php"); $pengundi_FPKF = 0; $pengundi_JABFN

我有一个教员有三个名字,分别是JABFNT、FPKF和JABPN。我想计算每个名字中的学生人数,然后将其合并为一个总数。在数据库中,JABFNT有2名学生,FPKF有1名学生,JABPN有1名学生。因此,输出应该总共有4个学生。我没有找到如何组合它的解决方案,所以这是我尝试过的代码,但我得到的输出是0

      include("../connection_jpp.php");

      $pengundi_FPKF = 0;
      $pengundi_JABFNT = 0;
      $pengundi_JABPN = 0;

      $sql_pengundi    = "SELECT * FROM pengundi WHERE aktif = 'Y'";
      $result_pengundi = mysql_query($sql_pengundi) or die("".mysql_error());
  
      include("../connection_jpp.php");
  
      while ($row_pengundi = mysql_fetch_array($result_pengundi))
      {
        include("../connection_jpp.php");
        $no_matrik = $row_pengundi['no_matrik'];
  
        include ("../../includefail/connection.php");
        $sql_peng           = "SELECT * FROM pelajar WHERE no_matriks = '$no_matrik'
                               AND kod_fakulti = 'FPKF' AND aktif = 'Y'";
        $result_peng        = mysql_query($sql_peng) or die("".mysql_error());
        $count_check_status = mysql_num_rows($result_peng);
  
        if ($count_check_status > 0)
        {
          $pengundi_FPKF = $pengundi_FPKF + 1;
        }

        $sql_pengundi        = "SELECT * FROM pelajar WHERE no_matriks = '$no_matrik'
                             AND kod_fakulti = 'JABFNT' AND aktif = 'Y'";
        $result_pengundi     = mysql_query($sql_pengundi) or die("".mysql_error());
        $count_check_stat = mysql_num_rows($result_pengundi);

        if ($count_check_stat > 0)
        {
          $pengundi_JABFNT = $pengundi_JABFNT + 1;
        }

        $sql_pengundii     = "SELECT * FROM pelajar WHERE no_matriks = '$no_matrik'
                             AND kod_fakulti   = 'JABPN' AND aktif = 'Y'";
        $result_pengundii  = mysql_query($sql_pengundii) or die("".mysql_error());
        $count_check_statuss = mysql_num_rows($result_pengundii);

        if ($count_check_statuss > 0)
        {
        $pengundi_JABPN = $pengundi_JABPN + 1;
        }


      }
      $total_FPKF   = $pengundi_FPKF;
      $total_JABFNT = $pengundi_JABFNT;
      $total_JABPN  = $pengundi_JABPN;
      $total_fac   = $total_FPKF + $total_JABFNT + $total_JABPN;       

为什么不一次组合SQL查询?
从kod_fakulti所在的pelajar中('JABFNT','FPKF','JABPN')选择COUNT(*)
或使用子查询

编辑:
从pelajar中选择COUNT(*),其中kod_fakulti IN('JABFNT','FPKF','JABPN')和no_matriks='no_matriks'和aktif='Y'


所有这些都是一次完成SQL查询,而不是像原始查询那样进行多次查询

查询中有错误吗?没有。我刚得到了0作为输出。
0
可能意味着在查询中找到了错误或零记录。你从哪里得到这个“输出”?帮我,帮你。假设我不在您的计算机上解决此问题的最佳方法是使用SQL only解决方案。SQL将更快地工作,并对进一步的软件支持产生积极影响;它返回0。这就是输出。@zimorok,我已经尝试了您给出的查询,但是它返回了pengundi表中的学生总数,即15。我需要的输出应该是4。@zerhez:回到您的SQL查询,您仍然需要添加
no_矩阵
aktif
SELECT COUNT(*)一样,从pelajar中选择kod_fakulti IN('JABFNT','FPKF','JABPN')而no_matrik='$no_matrik'和aktif='Y'
@GetSet:我甚至不在乎否决票,你也不应该在意。并非所有错误都会神奇地为您提供可调试的实际错误/异常。