[php + mySQL]日付順にソートする方法

phpMyAdminを見たら分かるんだけどね。

こんな感じ

例えばmySQLに各店舗の売上を一元管理してるテーブルがあるとする。

ログインのセッション情報に店舗idを仕込んであって、該当するidを持つ売上情報を出したい。売上情報は随時登録する、登録漏れを追って登録したりするとする。つまり、登録順と登録した日付の並びは合致しないと想定。

一覧で出す場合は日付順にしたほうがいいよねっていう内容。

日付はdate形式(yyyy-mm-dd)で登録してるとする。

<?php
    require('function/pdo.php');
    $sql = "SELECT * FROM 【テーブル名】 WHERE id = '{$_SESSION['id']}' ORDER BY `【テーブル名】`.`【カラム名】` ASC";
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $dbh = null;
    if(!empty($stmt)):
        foreach ($stmt as $row):
            print $row['id'];
        endforeach;
    endif;
?>

メモ

FROMでテーブルを指定してるけど、ORDER BYでもテーブルを指定してる。其々に役割があるんだから、両方書かなきゃいけません。

ORDER BYのあとは「`」であって「’」じゃないことも注意。

ASCを逆にしたければDESCにする。

mySQLの観点から言えば、対象はdateだけでなくdatetimeでも使える。取得時はカラムを指定するだけだから楽ですね。

コメント

タイトルとURLをコピーしました