作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个小型 PHP/MySQL 系统来跟踪同一公司内不同商店位置之间的产品转移。每家商店都会将他们的转账输入数据库。然后会计师应该能够在月底提取汇总报告。
信息是这样存储在数据库中的:
ID | Transfer Date | Dept | Item | Qty | Cost | Receiver | Sender
Ex: 1 | 2018-01-06 | 35 | Milk | 36 | 1.96 | 07 | 02
我可以很好地将信息输入数据库。商店和部门都只是数字。当我尝试对提交给会计师的摘要报告进行编程以报告必要的数字时,我的问题就来了。
要创建摘要报告,我需要将信息从数据库中拉回并将其放入 7 个数组之一(每个商店一个)。这些数组将包含 14 个元素(商店内的每个部门一个)。如果商店从部门 35 发出产品(如上例),我们需要从部门 35 的元素中减去指定的金额。如果商店收到产品,我们需要将金额添加到部门 35 的元素。
我确切地知道我需要做什么,但我只是没有得到任何代码来工作。我已经尝试了在这里和其他网站上找到的各种东西。不幸的是,这个有点超出我的新手能力。到目前为止,这是我所处的位置,但老实说,我不知道从这里去哪里。
$sql = "SELECT * FROM Transfers WHERE (tDate BETWEEN '$date1' AND '$date2') ORDER BY tDate ASC";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$send = $row['Sender'];
$recv = $row['Receiver'];
$dept = $row['Dept'];
$qty = $row['Qty'];
$cost = $row['Cost'];
// Calculate total line cost
$totalCost = $qty * $cost;
$tSender = join($send, $dept);
$tReceiver = join($recv, $dept);
我如何实际获取这些信息并将其添加或减去每个商店的数组?
提前致谢!
最佳答案
正如您所猜测的那样。它应该是这样的:
$resultat=array();
for each result of your request{
if(!isset($resultat[receiver][dept][item]))$resultat[receiver][dept][item]=array('qty'=>0,'cost'=>0);
if(!isset($resultat[sender][dept][item]))$resultat[sender][dept][item]=array('qty'=>0,'cost'=>0);
$resultat[receiver][dept][item]['qty']+=qty;
$resultat[receiver][dept][item]['cost']+=cost*qty;
$resultat[sender][dept][item]['qty']-=qty;
$resultat[sender][dept][item]['cost']-=cost*qty;
}
不能按原样使用,但它应该能让您回到正轨。
关于php - 如何从多个数组中添加不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48326853/
我是一名优秀的程序员,十分优秀!