2014-10-31 16 views
0

我正在为我的网站制作支付系统,并且我需要一种方法来从数据库中选择月份和年份与当前月份相同的所有内容,年。例如,我的日期格式为dd/mm/yyy或 01-01-2010。PHP从当前月份中选择数据库行并使用foreach显示它们()

完成后,我需要用foreach()循环显示所有结果。这怎么能做到?我试过在mysql_query中使用LIKE函数,但它只是输出一个错误。

下面是一些代码,我想出了:

date_default_timezone_set('UTC'); 

$today = date("d-m-Y"); // Output something like 21-10-2014 for finding matching rows 
    $today_compare = substr($today, 2, 8); 

$fetch_donate = mysql_query("SELECT * FROM `shop_payments` WHERE date LIKE '%today_compare%"); 
+0

存储在该格式数据库中的日期?如dd/mm/yyyy?或者他们是PHP时间戳? – acupajoe 2014-10-31 15:35:54

+0

你需要提供你的MySQL语句!和任何其他相关的代码 – cmorrissey 2014-10-31 15:42:05

+0

它们也以这种格式存储(来自丹麦的im)。时区是UTC。 – FrossBlock 2014-10-31 15:42:17

回答

1

我会给你一个答案的基础上,你可以改变你的日期字段在数据库中实际上是一个日期数据类型的假设领域。我也会假设你将列名更改为非保留字date,类似payment_date。这只是一个好习惯 - 不要将数据库对象命名为保留字。

查询可能是这样简单:

SELECT * 
FROM `shop_payments` 
WHERE `payment_date` LIKE CONCAT(YEAR(NOW()), '-', MONTH(NOW()), '%') 
+0

谢谢,它完美的工作:)我将它改为payment_date并将mysql列更改为DATE而不是CHAR :) – FrossBlock 2014-10-31 17:30:13

相关问题