Sum MySQL / PHP ile yıl değerleri

1 Cevap php

Ben bir web sitesi için çeşitli figürler ve verilerin üretilmesi için bir MySQL veritabanı değerleri ve toplamlarını güncellemek için kullanabileceğiniz bir veritabanı admin sayfasında küçük bir sorun var.

Arka plan biraz - Söz veritabanı tablo tablo üç sütun sahip, bir sadaka kitap sergisi için bağış toplamları tutar - id, tarih ve amountraised. Belirli bir yıl ya da cari yıl için yetiştirilen toplam toplanmasıyla bir sorun değil - bağış başladı ve cari yıl için bir zaman ben zaten geçen Şubat çalışan bir toplam var, ve bu para cezası çalışıyor. Ben sadece yükseltilmiş bu haftaki toplam eklerken olsa fark ettik ki ben kaldırdı tüm fonların toplam biliyorum, ve ne kadar hiçbir yerde gösterildiği geçen yıl için toplam olduğunu, bu yıl şimdiye kadar gündeme gelmiştir iken. Açıkçası bu yıl için sadece genel toplam kapalı bu yıl için bugüne kadar toplam alabilir, ama gerçekten gösterilecek her yıl için toplam gerekir.

Ben her yıl için bağış toplama hedefleri gösterilmektedir sayfada görüntülenen bir tablo var, ve ben zamanla biz her yıl için hedef ve miktarını bu yıl kaldırdı hem de görebilirsiniz böylece bu tabloya yıl toplam eklemek istiyorum.

Çalışan toplam görüntüler sayfanın biraz, ben genel toplamı görüntülemek aşağıdaki, ve cari yıl için toplam sahip:

$result = mysql_fetch_array($query);
$sumtotal = $result["sum_total"];

$query2 = mysql_query("SELECT SUM(amountraised) AS year_total FROM fundraisingtotal WHERE YEAR(date) = YEAR(CURDATE());");
$result2 = mysql_fetch_array($query2);
$yeartotal = $result2["year_total"];
?>
<p class="dbpara">The current fundraising total since February 2009 is <b>&pound;<? echo "$sumtotal"; ?></b>.</p>
<p class="dbpara">The current fundraising total for this year (<?php echo date('Y'); ?>) is <b>&pound;<? echo "$yeartotal"; ?></b>.</p>

Ayrıca aynı sayfada ben bağış hedeflerin ekran var ve yıllık hedeflere (yıllık hedefler için ayrı bir tablo olarak bağış toplamları veri Sadece bir tabloda, kısmen çünkü, ben sorunum var, bu biraz yıl ve hedef), ve yıllık hedef gösteren tablo sayfaya veritabanından verileri yazmak için bir süre döngü kullanır kısmen. Bu (Ben açıkçası bunun için hiçbir kod büyüdü toplam tablo hücresini koymak, ama oldum) masa ve veri yazmak için kullanıyorum kodu:

<?php $query="SELECT * FROM annualtarget ORDER BY year DESC"; $result=mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0 ) {
$i=0;
while ($i < $num) {
$year = mysql_result($result,$i,"year");
$target = mysql_result($result,$i,"target");
$id = mysql_result($result,$i,"id");
echo "<tr><td class=\"yr\"> $year </td><td class=\"tg\"> &pound;$target </td><td class=\"total\"> ???? </td><td class=\"update\"><a href=\"updatetarget.php?id=$id\">Update</a></td><td class=\"delete\"><a href=\"delete.php?id=$id\">Delete</a></td></tr>";
++$i; } } else { echo "<tr><td colspan=\"4\">The database is empty!</td></tr>"; }
mysql_close();
?>

Ben yıl toplamları hesaplamak için farklı bir sorgu gerekir, ama ben while döngüsü içine çalışabilirsiniz nasıl çalışamaz Açıkçası çünkü. Ben tarih yıl biraz dışarı ayırarak bağış miktarı tablodan tarihini kullanabilirsiniz, ancak her yıl için hedef cekti'iş farklı bir tablo olduğu gibi, ve ben gerçekten zor zorunda istemiyorum Yıl kod ve ne zaman olabilir (ben bunu nasıl anlamaya eğer) veritabanında kaldırdı toplam sadece hesaplamak için veritabanı kullanmak, görüntülemek için.

Herhalde burada gülünç belirgin bir şey eksik, ama ben onu anlamaya olamaz. Kimseye bunu nasıl yapabilirim bir fikriniz var mı?

1 Cevap

Kerede tüm toplamları almak için sorgu "grubu tarafından" bir kullanın.

SELECT YEAR(date) as year, SUM(amountraised) AS year_total 
FROM fundraisingtotal 
GROUP BY YEAR(date)