2011-12-08 7 views
2

私はmysqlデータベースを持っており、2年以上のデータがあります。どのように私はそれがこれらのフィールド構造です?:mysqlからデータを取得して週単位でグループ化する方法

January 
    Week 1 
     ... 
     data rows here 
     .... 
    Week 2 
     ... 
     ... 
    Week 3 
     ... 
     ... 
    Week 4 
     ... 
     ... 

February (same as above) 

以下のように結果を取得するような方法でクエリを行うことができます。

- date (in yyyy-mm-dd format) 
- job (integer autoincrement) 
- person (varchar) 

答えて

6

あなたはレコードが、日付、GROUP BYを使用する必要があることが賢明とデートしたい場合、それはあなた

SELECT MONTH(date) AS MONTH, WEEK(date) AS WEEK, DATE_FORMAT(date, %Y-%m-%d) AS DATE, job AS JOB, person AS PERSON GROUP BY WEEK(date); 
2

これはクエリである必要がありますか、またはajaxも使用できますか?

date = [initial date] 
while date <= [final date] { 
    divUpdate = 'divrecs'; // will be used in updateDiv function 
    url = 'getrecs.php?date1='+date+'&date2='+(date+6); 
    conecta(url,updateDiv); 
    date = date+7; 
} 

を内側getrecsはあなたのクエリは次のようになります:あなたはJavaScriptでループを行うことができ、AJAXを使用することができます

$stmt = $dbh->prepare("select * from yourtable where date >= '".$_GET['date1']."' and date <= '".$_GET['date2']."'"); 
if ($stmt->execute()) { 
    while ($row = $stmt->fetch(PDO::FETCH_BOTH)) { 
     echo "Do anything with your data here: $row[1] etc<BR>"; 
    } 
} 

願っています!

0

SELECT MONTH(created_datetime) AS month, WEEK(created_datetime) AS week, DATE(created_datetime) AS date, COUNT(id) AS count FROM users WHERE date(created_datetime) BETWEEN '2017-05-01' AND '2017-12-31' GROUP BY month ORDER BY created_datetime

で必要とされるものにかなり類似した出力を生成し、これを試してみてください。
週単位でGROUP BY週を使用する必要がある場合。
月ごとにGROUP BYを使用する必要があるレコードを毎月表示したい場合。

関連する問題