0

並べ替えに問題があり、何が問題なのかわかりません。私はテーブルを持っています

id  id_teacher     subject  class   hour           day
1   2 [->]           Math      X C     8         Monday
2   2 [->]           Math      X C     12       Wednesday
3   2 [->]           Math      X C     9         Tuesday
4   2 [->]           Math      VI B    10       Monday
5   2 [->]           Math      X C     11       Monday
6   2 [->]           Math      X C     10       Tuesday
7   5 [->]           Chimie   X C     9         Monday
8   5 [->]           Chimie   X C     12       Monday
9   2 [->]           Sport     X C      7         Monday

そして、「時間」と「件名」を出力する関数があります。関数は次のとおりです。

function OreMonday($item){
        $sth = $this->dbh->prepare("SELECT class FROM elevi WHERE id_elev = :id_elev;");
        $sth->bindParam(":id_elev", $item);   
        $sth->execute();
        $result = $sth->fetch(PDO::FETCH_ASSOC);
        $sth1 = $this->dbh->prepare("SELECT hour, subject, day FROM hourr WHERE class = :class ORDER BY hour DESC;");
        $sth1->bindParam(":class", $result['class']);   
        $sth1->execute();
        while ($result1 = $sth1->fetch(PDO::FETCH_ASSOC)) {
            if ($result1['day'] == 'Monday') {
                echo $result1['hour'];
                echo $result1['subject']."<br>";
            }
        }    
    }

}

$item は $_SESSION['id'] であり、$result['class'] は別のステートメントからの XC です

結果は次のとおりです。

Monday
9Chimie
8Math
7Sport
12Chimie
11Math

そして私が欲しい:

Monday
7Sport
8Math
9Chimie
11Math
12Chimie
4

1 に答える 1

4
  1. データベースでは、時間列は数値列である必要があり、varchar 列または文字列列ではありません*
  2. DESCではなくASCを注文する必要があります

*何らかの理由で列タイプを変更できない場合 (およびその場合のみ): mysql ソート文字列番号を確認してください

于 2013-10-25T11:50:17.687 に答える