Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示从3个月前到今天的MySQLi结果_Php_Mysql_Datetime_Mysqli - Fatal编程技术网

Php 显示从3个月前到今天的MySQLi结果

Php 显示从3个月前到今天的MySQLi结果,php,mysql,datetime,mysqli,Php,Mysql,Datetime,Mysqli,我一直在搜索中寻找关于这个问题的帮助,并试图根据这些问题编辑我的代码,但运气不好,所以我希望有人能在这里提供帮助 我有一个数据库,数据库中有一系列事务,它们都是按日期戳Y-m-dh:I:s进行的 虽然我的代码似乎不能正常运行,但我试图从3个月前到今天提取结果?无论我在数据库中更改了多少日期,都不会发生任何事情 我尝试了并试图改变和和或语句,还摆弄了标记变量的方式,例如:“$variable”{$variable}``$variable``又一次运气不佳 $today = date('Y-m-d

我一直在搜索中寻找关于这个问题的帮助,并试图根据这些问题编辑我的代码,但运气不好,所以我希望有人能在这里提供帮助

我有一个数据库,数据库中有一系列事务,它们都是按日期戳
Y-m-dh:I:s
进行的

虽然我的代码似乎不能正常运行,但我试图从3个月前到今天提取结果?无论我在数据库中更改了多少日期,都不会发生任何事情

我尝试了
并试图改变
语句,还摆弄了标记变量的方式,例如:“$variable”{$variable}``$variable``又一次运气不佳

$today = date('Y-m-d H:i:s');
$months3 = strtotime('-3 months', strtotime($today));
$months_ago = date('Y-m-d H:i:s' , $months3 );

$user_email = $_SESSION['email_address'];

$sql3 = "SELECT * FROM `ap_payment_logs` WHERE 'txn_date' BETWEEN '{$months_ago}' AND '{$today}' AND user_id = '$user_id' OR payer_email = '$user_email' ORDER BY 'txn_date' DESC LIMIT 10";

我不确定这方面的性能,但您可以在mysql中执行以下操作:

WHERE txn_date >  NOW() - INTERVAL 3 MONTH
如果表中还有将来的记录,则应添加“txn_日期”应小于现在的条件()

然后将sql查询更改为:

$sql3 = "SELECT * FROM `ap_payment_logs` WHERE 'txn_date' > NOW() - INTERVAL 3 MONTH AND (user_id = '$user_id' OR payer_email = '$user_email') ORDER BY 'txn_date' DESC LIMIT 10";

希望这能有所帮助

就当是三个月前的选择日期吧!工作完美-尽管我注意到我需要在括号内添加
用户id='$user\id'或付款人电子邮件='$user\u email'
()
,因为系统误认为日期在3个月前或付款人电子邮件是电子邮件。但是我没有意识到你可以在MySQL中自动完成,所以谢谢你教我一个更简单的方法!