2013-10-25 3 views
0

У меня проблема с моей сортировкой, и я не понимаю, в чем проблема. У меня есть таблицаMYSQL ORDER BY не отображается как ожидалось

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>"; 
      } 
     }  
    } 

}

$ элемент $ _SESSION [ 'ID'] и $ результат [ 'класс'] является XC от другого оператора

результат:

Monday 
9Chimie 
8Math 
7Sport 
12Chimie 
11Math 

И я хочу:

Monday 
7Sport 
8Math 
9Chimie 
11Math 
12Chimie 
+1

Каков тип данных столбца 'hour'? – AlexP

ответ

4
  1. в дб, час колонка должна быть числовой столбец, а не VARCHAR или строка столбец *
  2. вы должны заказать ASC, не DESC

*, если (и только если) по каким-либо причинам вам не могут изменить тип столбца: check mysql sort string number

+0

Спасибо ... 1 была проблема – Comy

Смежные вопросы