2012-04-25 40 views
5

Bất kỳ ai ở đây đều có thể giúp tôi giải quyết vấn đề này? Tôi chỉ muốn lấy tổng hoặc tổng của một số cột nhất định, vui lòng tham khảo hình ảnh bên dưới. Đã cố gắng để sắp xếp này trong 2 ngày nhưng không thể không có may mắn, Hy vọng bất cứ ai có thể giúp tôi với điều này. Tôi đánh giá cao nó rất nhiều, và cảm ơn trong trước.tổng của cột mảng

Đây là một hình ảnh mẫu http://www.freeimagehosting.net/pig81

<?php $sql = "SELECT name, doc_date, descs, debit, credit FROM statement WHERE 
member_id = $member_id ORDER BY doc_date"; 

$query = mysql_query($sql); 
$combinedResults = array(); 

while($result = mysql_fetch_array($query)) { 
$combinedResults[$result[`name`]][] = array(`name` => $result[`name`], `doc_date` => 
$result[`doc_date`], `descs` => $result[`descs`],`debit` => $result[`debit`], `credit` 
=> $result[`credit`]);} 

foreach(array_keys($combinedResults) as $groupKey) { ?> 
<table> 
    <tr><?php foreach($combinedResults[$groupKey] as $item) {?> 
    <td>Date</td> 
    <td>Description</td> 
    <td>Debit</td> 
    <td>Credit</td> 
    <td>Balance</td> 
    </tr> 
<tr> 
<td colspan="2"><?php echo $groupKey; ?></td> 
<td width="105">&nbsp;</td> 
<td width="105">&nbsp;</td> 
<td width="105">&nbsp;</td> 
</tr> 
<tr><?php foreach($combinedResults[$groupKey] as $item) {?> 
<td><?php echo $item[`doc_date`];?></td> 
<td><?php echo $item[`descs`];?></td> 
<td><?php echo $item[`debit`];?></td> 
<td><?php echo $item[`credit`]; ?></td> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>sum of debit goes here</td> 
</tr> 
<?php }} ?> 
</table> 

Trả lời

1

Tôi đã cấu trúc lại mã dựa trên những gì tôi thấy trong đó và thêm một máy tính cân bằng, nhưng tôi chưa thực sự thử nghiệm nó.

<?php 

$sql = "SELECT name, doc_date, descs, debit, credit 
     FROM statement 
     WHERE member_id = $member_id 
     ORDER BY doc_date"; 

$query = mysql_query($sql); 
$combinedResults = array(); 

// Slurp SQL results into array 
while ($result = mysql_fetch_array($query)) { 
    $combinedResults[$result['name']][] = array(
    'name' => $result['name'], 
    'doc_date' => $result['doc_date'], 
    'descs' => $result['descs'],'debit' => $result['debit'], 
    'credit' => $result['credit'] 
); 
} 

// Define a format for all table lines (add CSS as required) 
$fmt = "<tr>\n <td>%s</td>\n <td>%s</td>\n <td>%s</td>\n <td>%s</td>\n <td>%s</td>\n</tr>"; 

print "<style type='text/css'>TD{width:105px;}</style>\n"; 

print "<table>\n"; 

// Walk through array... 
foreach ($combinedResults[$groupKey] as $item) { 
    // Start a section... 
    printf($fmt, "Date", "Description", "Debit", "Credit", "Balance"); 
    printf($fmt, $groupKey, "", "", "", ""); 
    $balance = 0; // Initialize the balance for this section... 
    foreach ($combinedResults[$groupKey] as $item) { 
    printf($fmt, $item['doc_date'], $item['descs'], $item['debit'], $item['credit'], ""); 
    $balance += $item['debit']; 
    } 
    printf($fmt, "", "", "", "", $balance); // Print the balance. 
} 

print "</table>\n"; 

Tôi muốn biết liệu nó có hoạt động hay không. :)

Lưu ý rằng tôi đã không thực hiện các khoản phụ cấp cho "colspan" của bạn; Tôi nghi ngờ rằng bạn nên giải quyết trên logic của bạn trước khi bạn cố gắng xây dựng nó thành một bố trí thực tế.

+0

hi ghoti, cảm ơn bạn đã trả lời. tôi nghĩ rằng nó làm việc, nhưng nó chỉ cần một chút điều chỉnh bởi vì nó vòng hoặc hiển thị nhiều kết quả tùy thuộc vào số lượng các mặt hàng. đây là mẫu đầu ra http://www.freeimagehosting.net/xx7bc –

+0

hi ghoti, lại là tôi. ITS LÀM VIỆC BÂY GIỜ, cảm ơn rất nhiều vì đã dành thời gian và giúp đỡ của bạn .. đánh giá cao quá nhiều. –

+0

Không sao cả. Cảm ơn bạn đã upvote. – ghoti

2

Bạn có thể thay đổi câu lệnh SQL của bạn với một cái gì đó giống như

SELECT name, doc_date, descs, debit, credit, SUM(debit) AS sum FROM statement WHERE member_id = $member_id ORDER BY doc_date 

Sau đó bạn in nó với

<?php echo $item['sum']; ?> 

Bạn cũng có thể muốn có một cái nhìn tại PDOprepared statements thay thế các hàm mysql_.

+0

hi J-P, kết quả truy vấn chỉ trả lại 1 mục. bất kỳ ý tưởng? –

Các vấn đề liên quan