GROUP BYの日付のMYSQLクエリ結果をどのようにループして表示しますか?

user3304303

すべてのエントリにpoolsapoolidとaがあるというテーブルがありますcreateddate過去1週間(「これまでのところ」を含む)に毎日作成されたプールの数のリストを表示したい、ある種のダッシュボードを自分で作成しています。

私はこれまでに持っていますが、これは単に「8」を返します。これは実際には今日までに作成されたプールの数ですが、昨日、2日前、3日前などのプールの数を取得するにはどうすればよいですか?

    $today= date('Y-m-d');
    $weekago=date('Y-m-d', strtotime('-1 week'));

        $stmt = $pdo->prepare("SELECT COUNT(*), poolid FROM pools WHERE `createddate` BETWEEN :weekago AND :today GROUP BY createddate ORDER BY createddate DESC");  
        $stmt->execute([':weekago' => $weekago, ':today' => $today]);
        foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
            $numpoolssofartoday= $stmt->rowCount();
        }

echo $numpoolssofartoday;

私がやりたいことをするために微調整して以下を手に入れました:

$stmt = $pdo->prepare("SELECT COUNT(*) as numpools, createddate FROM pools WHERE `createddate` BETWEEN :weekago AND :today GROUP BY createddate ORDER BY createddate DESC");  
$stmt->execute([':weekago' => $weekago, ':today' => $today]);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
    $numpoolspastweek .= date('m-d',strtotime($row['createddate'])) . " " . $row['numpools']. "<br>";
}

その出力:

12-02 11
12-01 24
11-30 16
11-29 17
11-28 22
11-27 22
11-26 16
11-25 17
ArtisticPhoenix

あなたの問題はあなたがあなたの出力を書き過ぎているということです:

foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
    $numpoolssofartoday= $stmt->rowCount();
}
echo $numpoolssofartoday;

あなたは今それを見ますか?$numpoolssofartodayカウントの配列である必要があります。または、少なくとも、実行しようとしていることに応じて、ループ内から出力する必要があります。(たとえばテスト)。

また、rowCountどのカウントを使用すると、クエリのすべての戻り行が返されます。クエリによって返されたカウントを使用する代わりに。

したがって、SQLを変更して合計を取得しやすくし、日付を追加します。複数の行をGROUP BYと組み合わせているため、poolidは正しくないため、関係ありません。

$sql = 'SELECT createddate, COUNT(poolid) AS total FROM ...';

// I'm to lazy for that looping, and been coding to much so I like to type as little as possible.

$stmt->fetchAll(PDO::FETCH_GROUP);

またFetch Group、最初の列をグループ化したデータとして使用すると、このような配列が得られ、ループをスキップできます。

[
    '2017-12-3' => ['total' => '3'],
    '2017-12-2' => ['total' => '5']
]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クエリで「GROUP_CONCAT」と「HAVING」を使用した場合、MySQLの結果をカウントするにはどうすればよいですか?

分類Dev

MongoDbを使用して、group byを別のグループの結果に適用するにはどうすればよいですか?

分類Dev

巨大なテーブルへの複数の外部結合、group by、order by句を使用して、クエリの実行プランを最適化するにはどうすればよいですか?

分類Dev

MySQL GROUP BYクエリグループの結果(週、月)

分類Dev

クエリメソッド#groupはどのように機能しますか?

分類Dev

group_concatに個別のハイパーリンクを作成し、結果を1つのテーブルセルに表示します

分類Dev

GROUP_CONCATを使用してテーブルに親子を表示するためのMySQLクエリ

分類Dev

GROUP BYクエリを作成して、最新の行を表示します

分類Dev

GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

分類Dev

GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

分類Dev

GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

分類Dev

MySQL GROUPおよびHAVING集計クエリのすべての行を表示するにはどうすればよいですか?

分類Dev

GROUP BYを使用したクエリで使用する場合、rand()はどのように計算されますか

分類Dev

MySQLクエリ:結果の行を失うことなくGROUP BY

分類Dev

グループ化された結果がSPARQLでnullの場合に、GROUP_CONCATが空の文字列を返さないようにします

分類Dev

GROUP BY AND ROLLUPを使用してMySQLクエリの出力を並べ替えるにはどうすればよいですか?

分類Dev

group_by操作の後、dplyrはどのようにして各グループのデータフレームを生成できますか?

分類Dev

GROUP BYを取得して、特定の列の最後の行の値(日付別)を取得するにはどうすればよいですか?

分類Dev

group byを結合し、1つのクエリSQLに結合します

分類Dev

結果を制限する結合を使用したクエリでの COUNT および GROUP BY の使用

分類Dev

Oracle:2つのgroup byクエリ(集計関数count()を使用)を結合などで組み合わせて、統合された結果を取得します

分類Dev

Mysql-グループ化を回避するにはどうすればよいですか?それでもconcatとgroup concatを使用すると、複数の列と行の結果を組み合わせる必要があります

分類Dev

Terraformfor_eachと動的forリソースazurerm_network_security_groupを使用して複数のループを回避するにはどうすればよいですか?

分類Dev

<md-radio-group>のカスタムエントリとして入力フィールドを使用するにはどうすればよいですか?

分類Dev

すべてのグループを印刷しようとすると、「IndexOutOfBoundsException:No group4」が表示されます

分類Dev

linqを使用して、group byを使用し、モデルのリストのさまざまな値を合計するにはどうすればよいですか?

分類Dev

group byの結果を取得し、複数のリストに追加しますc#

分類Dev

GQLを使用して、このKey( 'Group'、 '1779_1528')のようなグループを選択するにはどうすればよいですか?

分類Dev

ブートストラップbtn-groupを使用して、行の一番上に1つのボタンをどのように配置しますか?

Related 関連記事

  1. 1

    クエリで「GROUP_CONCAT」と「HAVING」を使用した場合、MySQLの結果をカウントするにはどうすればよいですか?

  2. 2

    MongoDbを使用して、group byを別のグループの結果に適用するにはどうすればよいですか?

  3. 3

    巨大なテーブルへの複数の外部結合、group by、order by句を使用して、クエリの実行プランを最適化するにはどうすればよいですか?

  4. 4

    MySQL GROUP BYクエリグループの結果(週、月)

  5. 5

    クエリメソッド#groupはどのように機能しますか?

  6. 6

    group_concatに個別のハイパーリンクを作成し、結果を1つのテーブルセルに表示します

  7. 7

    GROUP_CONCATを使用してテーブルに親子を表示するためのMySQLクエリ

  8. 8

    GROUP BYクエリを作成して、最新の行を表示します

  9. 9

    GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

  10. 10

    GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

  11. 11

    GROUP BYを使用してMySQLの文字列を連結するにはどうすればよいですか?

  12. 12

    MySQL GROUPおよびHAVING集計クエリのすべての行を表示するにはどうすればよいですか?

  13. 13

    GROUP BYを使用したクエリで使用する場合、rand()はどのように計算されますか

  14. 14

    MySQLクエリ:結果の行を失うことなくGROUP BY

  15. 15

    グループ化された結果がSPARQLでnullの場合に、GROUP_CONCATが空の文字列を返さないようにします

  16. 16

    GROUP BY AND ROLLUPを使用してMySQLクエリの出力を並べ替えるにはどうすればよいですか?

  17. 17

    group_by操作の後、dplyrはどのようにして各グループのデータフレームを生成できますか?

  18. 18

    GROUP BYを取得して、特定の列の最後の行の値(日付別)を取得するにはどうすればよいですか?

  19. 19

    group byを結合し、1つのクエリSQLに結合します

  20. 20

    結果を制限する結合を使用したクエリでの COUNT および GROUP BY の使用

  21. 21

    Oracle:2つのgroup byクエリ(集計関数count()を使用)を結合などで組み合わせて、統合された結果を取得します

  22. 22

    Mysql-グループ化を回避するにはどうすればよいですか?それでもconcatとgroup concatを使用すると、複数の列と行の結果を組み合わせる必要があります

  23. 23

    Terraformfor_eachと動的forリソースazurerm_network_security_groupを使用して複数のループを回避するにはどうすればよいですか?

  24. 24

    <md-radio-group>のカスタムエントリとして入力フィールドを使用するにはどうすればよいですか?

  25. 25

    すべてのグループを印刷しようとすると、「IndexOutOfBoundsException:No group4」が表示されます

  26. 26

    linqを使用して、group byを使用し、モデルのリストのさまざまな値を合計するにはどうすればよいですか?

  27. 27

    group byの結果を取得し、複数のリストに追加しますc#

  28. 28

    GQLを使用して、このKey( 'Group'、 '1779_1528')のようなグループを選択するにはどうすればよいですか?

  29. 29

    ブートストラップbtn-groupを使用して、行の一番上に1つのボタンをどのように配置しますか?

ホットタグ

アーカイブ