作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想制作可以每周、每月和每年查看的报告。
例如:我想查看谁按周注册,或者我想查看谁在本月或本年注册以及付款情况。我想在今年六月见到登记者。我想使用下拉搜索查看 2010 年的注册者。
//这是我每周报告的代码,我想查看上周注册的学生,但我不知道我的代码是否正确。
$datetoday=date("Y-m-d");
$result = mysql_query("
SELECT enrollee_info.*, payments.* from enrollee_info
INNER JOIN payments on payments.enrollee_id=enrollee_info.e_id
WHERE enrollee_info.category='Walk In'
AND DATE_FORMAT(payments.entrydate , %Y-%m-d')>=SUBDATE('".$datetoday."' , INTERVAL 7 DAY)");
使用每月和每年,例如我想查看谁在本月注册等,我想通过使用下拉列表查看谁今年注册,您可以选择要搜索的月份或年份。
最佳答案
看看the manual关于 INTERVAL
的可接受单位。您可以简单地使用开关来确定记录的范围。
在您的下拉列表中,您将有周、月或年。然后,您可以使用 switch 来准备语句。
$sql = "SELECT enrollee_info.*,
payments.*
FROM enrollee_info
INNER JOIN payments
ON payments.enrollee_id = enrollee_info.e_id
WHERE enrollee_info.category = 'Walk In'
AND payments.entrydate >= Subdate(Curdate(), ";
switch ($range) {
case "month":
$sql .= 'INTERVAL 1 MONTH';
break;
case "year":
$sql .= 'INTERVAL 1 YEAR';
break;
//if no match, use week
default:
$sql .= 'INTERVAL 1 WEEK';
}
$sql .= ')';
这会创建这样的语句:
SELECT enrollee_info.*,
payments.*
FROM enrollee_info
INNER JOIN payments
ON payments.enrollee_id = enrollee_info.e_id
WHERE enrollee_info.category = 'Walk In'
AND payments.entrydate >= Subdate(Curdate(), INTERVAL 1 week)
如果可能,尽量避免从每个表中获取所有列并使用列列表。
关于MYSQL:周报、月报、年报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237065/
我想制作可以每周、每月和每年查看的报告。 例如:我想查看谁按周注册,或者我想查看谁在本月或本年注册以及付款情况。我想在今年六月见到登记者。我想使用下拉搜索查看 2010 年的注册者。 //这是我每周报
我是一名优秀的程序员,十分优秀!