基本上我有一个用户数据库,人们可以在其中加入。
加入后,他们会选择他们居住的澳大利亚州。
userid, state, date
用户 ID 是他们的用户 ID,州是他们居住的州,日期是 datetime
他们加入时间的格式。
我想为过去 7 天的每一天选择数据,
所以今天是 3 月 28 日,我想选择 3 月 22-28 日的数据,即每天的注册总量,按州分组。
您可以查看下面的 XML 片段,了解我希望如何检索信息。
我们想要返回每天的注册总量……以放入我们的 XML 表中:
<series>
<value xid="0">03/22</value>
<value xid="1">03/23</value>
<value xid="2">03/24</value>
<value xid="3">03/25</value>
<value xid="4">03/26</value>
<value xid="5">03/27</value>
<value xid="6">03/28 (Today)</value>
</series>
<graph title="QLD" line_width="2" bullet="round" color="#ff0000">
<value xid="0">5</value>
<value xid="1">56</value>
<value xid="2">41</value>
<value xid="3">23</value>
<value xid="4">9</value>
<value xid="5">11</value>
<value xid="6">29</value>
</graph>
<graph title="NSW" line_width="2" bullet="round" color="#ff0000">
<value xid="0">1</value>
<value xid="1">6</value>
<value xid="2">4</value>
<value xid="3">2</value>
<value xid="4">9</value>
<value xid="5">1</value>
<value xid="6">9</value>
</graph>
但我们希望它都是动态的,所以 <series>
日期自动拉入 - 动态。 “QLD”的图表会自动传播及其关联的日期……每个州依此类推。
基本上我们所追求的是一个将返回变量的 mySQL 查询:
(The dates to enter at the top of the XML)
$firstdate; $seconddate; $thirddate; etc...
(The data grouped by state, daily, to put into the corresponding XML data section)
$qldfirstvalue; $qldsecondvalue; $qldthirdvalue; etc...
$nswfirstvalue; $nswsecondvalue; etc...
$actfirstvalue; etc...
如果您不明白我刚才说的任何内容,请告诉我。我会尽力改写。
谢谢你:)
最佳答案
SELECT COUNT(*) AS count, state, DATE_FORMAT( '%m/%d', date ) AS date_formatted
FROM state
WHERE CAST( date AS DATE ) > DATE_SUB( CURDATE(), INTERVAL 7 DAY)
GROUP BY state, date_formatted
- 您可能需要在最后一行的 date_formatted 上复制 'DATE_FORMAT( '%m/%d', date )'
- 这应该返回 7 *(# of states)个结果——你应该将它们输入一个数组,然后将它们拉出来作为你的输出
- 我会像这样制作数组 $my_array[$row['date_formatted']][$row['state']] = $row['count']
关于php - mySQL 查询 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466887/