两个mysql表和每个循环之间的关联数组

时间:2014-09-29 18:44:39

标签: php mysql sql arrays for-loop

嘿伙计我需要一些关于关联数组的帮助

这就是我所拥有的。

我有两个名为users的mysql表...这样设置。

[ MYSQL DB users]
***************************************
Id------name-------empnum------amount
1 ------testa------123456------40.00
2 ------testb------652526------300.00
3 ------Testc------919825------100.00
4 ------Testd------354694------50.00

另一个db就是这样设置的。

[ MYSQL DB po ]
***************************************
Id------ponum------reason----empnum---------total------reason
1 ------1234------testa------123456---------40.00------Demo
2 ------1235------testb------652526--------300.00------Demo
3 ------1236------Testc------919825--------100.00------other
4 ------1237------Testd------123456---------50.00------Demo

我需要做的是从“用户”数据库中选择每个用户,然后在“Po”db中找到它们

然后我需要将他们花费的总金额(在PO中)加起来,并将其与用户db的金额进行比较。

我有这个javascript条形图,我想在每个人名旁边显示,以向他们展示他们花了多少接近100%。

<div id="progressBar<? echo $id; ?>" class="default"><div></div></div>
    <script>
        progressBar(<?php echo round(($sum/$total) * 100); ?>, $('#progressBar<? echo $id; ?>'));
    </script>  

我的问题是 我该如何解决这个问题。我的第一个想法是使用关联数组并从用户获取数量和empnum,然后从mysql中提取该信息,然后将其与总数进行比较....点a和b之间的某些地方我迷路了。我对A-array如何使用mysql和两个表格没有很好的理解。 从我发现它看起来我将不得不使用每个循环。?? 我是以错误的方式解决这个问题..有更简单的方法吗???

1 个答案:

答案 0 :(得分:1)

您可以在一个查询中执行大部分操作:

SELECT u.amount, SUM(p.total) 'po_total'
FROM users u LEFT JOIN po p
  ON u.empnum = p.empnum
GROUP BY p.empnum

然后:

$percentage = $row['po_total'] / $row['amount'];