2013-06-19 61 views
1
-- 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; 

我在我的數據庫中有上述兩個表。該數據庫保存關於根據其賬戶類型(用於公用事業賬單,建築項目等)分類的捐贈的信息,並且會員直接捐贈給他們選擇的特定賬戶(他們可以捐贈給一個賬戶或所有賬戶或任意數量的賬戶)。幾個帳戶的總捐款(變量)

數據庫在MS Access中工作正常,但現在我必須將其遷移到MySQL和PHP,這就是我的問題所在。我無法想出代碼來列出成員的名字,並且每個成員都顯示每月爲每個帳戶捐贈的總金額以及每年的總計金額。

請幫助代碼。謝謝。

+2

那麼,你可以從修改你的問題開始,在Access中包含查詢。 –

回答

0

不像純粹的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; 

} 
+0

在php頁面中嘗試了這個,但出現錯誤。插入我的PHP代碼到您的代碼如下 – user2159175

+0

試圖在一個PHP頁面,但有一個錯誤。插入我的php代碼到代碼中,但它返回這個錯誤致命錯誤:調用第12行的C:\ Program Files \ VertrigoServ \ www \ church \ details.php中的未定義函數mysqli()。第12行有以下$ result = mysqli($ link,$ query); 請幫忙 – user2159175

+0

所以你沒有'mysqli'支持,而需要使用'mysql'函數。 ($ row = mysql_fetch_assoc($ result)){'而不是'while($ row);'' = mysqli_fetch_assoc($ result)){'。請記住,在執行此代碼之前,您需要一個可用的mysql連接,這在此處未涉及。 –