PHP在多个循环中得到总数

时间:2014-09-10 09:15:55

标签: php mysql arrays loops while-loop

我正在使用以下脚本,其中我想要特定分支的总项目,表格如下 -

Tbl_branch有 -

分支ID | 分行名称

Tbl_employee有 -

emp_id | bid(分支ID)| emp_details

Tbl_Project有 -

id | project_details | emp_id(哪个员工添加了项目)

-

在这里,我想获得特定分支的总项目,用户将通过下拉列表选择分支名称,其ID将在值中。

我使用以下查询

<?php

$result1 = mysql_query("select * from tbl_employee WHERE bid = '$bid'");
while ($row1 = mysql_fetch_array($result1)){
$eid = $row1['id'];

$pro = mysql_query("SELECT COUNT(id) FROM tbl_project WHERE emp_id = '$eid'") or     die(mysql_error()); 
$rowpro = mysql_fetch_array($pro);
$totalprojectsb = $rowpro[0]; 

 ?>

<div class="card-container col-lg-3 col-md-6 col-sm-12">
            <div class="card card-red hover">
              <div class="front">        
                <h1>Total Enquires</h1>
                <p id="users-count"><?php echo $totalprojectsb; ?></p>
                <span class="fa-stack fa-2x pull-right">
                  <i class="fa fa-circle fa-stack-2x"></i>
                  <i class="fa fa-user fa-stack-1x"></i>
                  <span class="easypiechart" data-percent="100" data-line-width="4"   data-size="80" data-line-cap="butt" data-animate="2000" data-target="#users-count" data-update="3000" data-bar-color="white" data-scale-color="false" data-track-color="rgba(0, 0, 0, 0.15)"></span>
                </span>
              </div>
              <div class="back">
                <ul class="inline divided">
                  <li>
                    <h1>Total Projects </h1>
                    <p><?php echo $totalprojectsb; ?></p>
                  </li>
                  <li>
                    <h1>This Month</h1>
                    <p><?php  ?></p>
                  </li>
                </ul>
                <div class="summary negative"> <i class="fa fa-arrow-down"></i> </div>

              </div>
            </div>

<?php } ?>

这显示总图块的次数与该分支中的员工总数一样多。

我想要的是显示一个瓦片,它将从一个特定分支获得项目总数。 我看到某处数组可用于此类事情,但我不确定如何。

请帮忙。如果没有正确框架,也要更正我的问题。

2 个答案:

答案 0 :(得分:0)

您期待以下内容:&#34; 在这里,我希望获得特定分支的总项目,用户将通过下拉列表选择分支名称,其ID将在值中&#34; - &GT;也就是说,与当前登录的用户或其项目无关,您希望根据与之关联的分支(通过属于给定分支并创建项目的各个员工)对它们进行分类。 / p>

SELECT b.branchid, b.branchname, count(p.projectid) AS branchProjects FROM tbl_employee AS e
    LEFT JOIN tbl_project AS p ON p.empid = e.empid
    LEFT JOIN tbl_branch AS b ON b.branchid = e.bid
    GROUP BY b.branchid

使用上述SQL,您将连接表格并按branchID对收到的数据进行分组,并计算与其相关的结果。

答案 1 :(得分:0)

好吧,只要您只对特定分支上的项目总数感兴趣,您就可以按如下方式更改SQL:

SELECT COUNT(id)
FROM Tbl_Project
WHERE emp_id IN (
    SELECT emp_id
    FROM Tbl_employee
    WHERE bid = '$bid'
)

此查询应返回所选分支上的项目总数

编辑:澄清一下:内部SELECT选择所有正在该分支上工作的员工,外部SELECT选择所有项目,这是由在内部{{1}中选择的员工创建的(例如,该分支上的项目)。 SELECT仅计算此类项目。