Jump to content

Payment per month


zavin

Recommended Posts

I am wanting to get a total of all payment made in a month. For example June would = all payments made in June.

The code I am using right now is:

$sql = "SELECT sum( mcgross ) AS `total` FROM `payments`WHERE DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= FROM_UNIXTIME(`payment_date`)";
$rs_result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($rs_result))
echo "$".$row['total'].";

Doing it this way only shows the last 30 days. Does anyone know of a good solution?

Link to comment
https://forums.phpfreaks.com/topic/114656-payment-per-month/
Share on other sites

Try this, not tested so may have some issues.

 

$intMonth = 6;//June
$sql = "SELECT sum( mcgross ) AS `total` FROM `payments`WHERE EXTRACT(MONTH FROM FROM_UNIXTIME(`payment_date`)) = '$intMonth'";
$rs_result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($rs_result))
echo "Total: ".$row['total'].";

Link to comment
https://forums.phpfreaks.com/topic/114656-payment-per-month/#findComment-589610
Share on other sites

Yes it will add 2 june together, and yes there is a way to display total for each month, try following code.

 

$sql = "SELECT sum( mcgross ) AS `total`,EXTRACT(MONTH FROM FROM_UNIXTIME(`payment_date`)) as month, EXTRACT(YEAR FROM FROM_UNIXTIME(`payment_date`)) as year FROM `payments`GROUP BY EXTRACT(MONTH FROM FROM_UNIXTIME(`payment_date`)), EXTRACT(YEAR FROM FROM_UNIXTIME(`payment_date`)) ";
$rs_result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($rs_result))
echo "Month-".$row['month']."-".$row['year']." Total: ".$row['total'].";

 

again, code is not tested so might have some small issues.

Link to comment
https://forums.phpfreaks.com/topic/114656-payment-per-month/#findComment-590193
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.