php - 多个账户的捐款总和(变量)

标签 php mysql

-- Table structure for table 'members'
CREATE TABLE `members` (
`mID` INTEGER NOT NULL AUTO_INCREMENT, 
`fname` VARCHAR(50), 
`lname` VARCHAR(50), 
`status` VARCHAR(20), 
`dateregistered` VARCHAR(255), 
INDEX (`lname`), 
PRIMARY KEY (`mID`)
) ENGINE=myisam DEFAULT CHARSET=utf8;

-- Table structure for table 'payments'
CREATE TABLE `payments` (
`paymentsID` INTEGER NOT NULL AUTO_INCREMENT, 
`amount` INTEGER, 
`type` VARCHAR(255), 
`officer` VARCHAR(255), 
`dayentered` DATETIME, 
`mID` INTEGER, 
INDEX (`mID`), 
PRIMARY KEY (`paymentsID`)
) ENGINE=myisam DEFAULT CHARSET=utf8;

我的数据库中有以上两个表。数据库保 stub 据账户类型(水电费、建筑项目等)分类的捐赠信息,成员(member)直接向他们选择的特定账户捐款(他们可以向一个账户或所有账户或任意数量的账户捐款).

数据库在 MS Access 中运行良好,但现在我必须将其迁移到 MySQL 和 PHP,这就是我的问题所在。我无法想出代码来列出成员的姓名,并为每个成员显示每个帐户每月的捐赠总额以及全年的总计。

请帮忙写代码。谢谢。

最佳答案

不像纯 SQL 解决方案那样快速/高效,但这可以完成工作。

$query = "
SELECT 
  `members`.`mID`,
  `members`.`fname`, 
  `members`.`lname`, 
  `payments`.`amount`, 
  `payments`.`type`, 
  `payments`.`dayentered`
FROM `members` JOIN `payments` 
ON `members`.`mID` = `payments`.`mID`";
$result = mysqli($link, $query);
$results = array();
while($row=mysqli_fetch_assoc($result)) {

  $mID    = $row['mID'];
  $type   = $row['type'];
  $amount = (int) $row['amount'];
  $date   = $row['dayentered'];
  $year   = date('Y', strtotime($date));

  if(!array_key_exists($mid, $results)) 
    $results[$mid] = array($row['fname'], $row['lname']);

  if(!array_key_exists($date, $results[$mid])) 
    $results[$mid][$date] = array();

  if(!array_key_exists($type, $results[$mid][$date])) 
    $results[$mid][$date][$type] = $amount;
  else
    $results[$mid][$date][$type] += $amount;

  if(!array_key_exists($year, $results[$mid]))
    $results[$mid][$year] = $amount;
  else
    $results[$mid][$year] += $amount;

}

关于php - 多个账户的捐款总和(变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17203259/

相关文章:

php - 从 Woocommerce 中删除重复的项目

php - PHP/MySQL-mysql_result()期望参数1为资源, boolean 值在[duplicate]中给出

mysql - 无法在 MySQL 中删除具有奇怪名称的过程

mysql 序列号按值列(查询 UPDATE)

MySQL 不对某些查询使用多列索引

php - Symfony 4 Remember Me 不起作用,浏览器重启时 cookie 被破坏

php - 发送 QUERY 数据包时出错

mysql - 如何获得一年内最多五个连续值?

mysql选择两个不同的查询

php - Codeigniter mysql 查询