Помогите с сортировкой sql-запросов в php

mabuta

Новичок
Помогите с сортировкой sql-запросов в php

Добрый день!
Помогите пожалуйста.
У меня есть расписание занятий и соответствующий запрос к базе данных, надо вывести рассписание занятий по дням недели, так чтобы оно выглядело приблезительно так

Понедельник
1.
2.
3.
Вторник
1.
2.
3.
 

Фанат

oncle terrible
Команда форума
берешь расписание занятий и пишешь соответствующий запрос

-~{}~ 01.03.09 18:34:

а что такое сортировка sql запросов?
 

mabuta

Новичок
Запрос уже написан, и он нормально выводить все записи.
Но мне надо чтоб выводило в таблицу записи которые отсортированые по конкретному id (и соответсвенно подписовало каждый день).
 

Фанат

oncle terrible
Команда форума
что такое " отсортированые по конкретному id" я не понял, а подписывать день очень просто.
Ты можешь вывести вывести в таком виде?
Понедельник 1
Понедельник 2
Понедельник 3
вторник 1
вторник 2
вторник 3
 

mabuta

Новичок
Я просто не знаю как написать эту сортировку при выводе результата sql-запроса.
Поэтому хочу чтоб вы дали ссылку где про это можно прочитать, или какой небудь пример с сортировкой по конкретному полю.
Вот пример моего запроса :
<?
db_connect();
$query = "SELECT
timetable.id,
timetable.lesson_num AS time,
subjects.name AS subject,
teacher1.surname as teacher1,
teacher2.surname as teacher2,
timetable.lesson_type1 AS type1,
timetable.lesson_type2 AS type2,
auditory.auditory_number AS auditory,
corps.number AS corp
FROM timetable
LEFT OUTER JOIN users teacher1 ON teacher1.id=timetable.teacher1_1
LEFT OUTER JOIN users teacher2 ON teacher2.id=timetable.teacher1_2
LEFT OUTER JOIN subjects ON subjects.id=timetable.subject1
LEFT OUTER JOIN auditory ON auditory.id=timetable.audit1
LEFT OUTER JOIN corps ON auditory.corps_id=corps.id
ORDER BY day_id, lesson_num";

if($res = mysql_query($query)){
for($i=1;$row=mysql_fetch_array($res);$i++)
{?>


<tr>
<?
echo "<td><a href='timetable_update.php?id=".$row["id"]."' name='redact'><img src='../../img/redact1.gif' alt='add'></a>
<a href='javascript: Del(".$row["id"].")' name='delete' ><img src='../../img/delete3.gif' alt='delete'></a></td>";
?>
<td><?=$row['time']?>&nbsp;</td>
<td><?=$row['subject']?>&nbsp;</td>
<td><?=$row['teacher1'].'<hr>'.$row['teacher2']?>&nbsp;</td>
<td><?=$row['type1']?>&nbsp;</td>
<td><?=$row['auditory']?>&nbsp;</td>
<td><?=$row['corp']?>&nbsp;</td>
</tr>
<?}
}
?>
 

Фанат

oncle terrible
Команда форума
сортировка - это расположение по порядку.
она у тебя уже, какая понимаю, произведена? тогда не употребляй это слово больше.

чтобы выводить название дня только один раз, надо, наверное, запоминать его в переменную и сравнивать с днем выводимой сейчас строки. неужели это так сложно для человека, который может написать столь развесистый запрос?
 

mabuta

Новичок
Не знаю.
Просто просто пробовал много примеров реализации этого, но ничего не вешло.
Додумался только сделать 6 запросов и выводить при условии что id дня равен конкретному дню.

Поэтому и решил спросить у професионалов
 

Фанат

oncle terrible
Команда форума
да тут профессионалы не требуются. Тут первоклассник нужен.
ты понимаешь алгоритм, который тебе тут описал?
 

mabuta

Новичок
та понимаю, алгоритм простой, если id дня равен один то вывести надпись понедельник,если 2 то вторник и тд.
Но при этом надо сделать чтоб эти название дней выводились в обьедененной строке таблице перед записями на этот день
 

Beavis

Banned
Что мешает вывести объединенную строку перед записями на этот день?
 

mabuta

Новичок
Так я пробовал, но будет выводиться только на первый день

То есть вот так

<TR> <TD colspan=7 align="left" bgcolor="#CCFFCC"> <b>Понеділок</b>

А как сделать чтоб оно выводилось по циклу и в зависимости от id дня?
 

Фанат

oncle terrible
Команда форума
mabuta
твоя уверенность в профессионалах просто поражает. ты правда думал, что тебе здесь сейчас рассказывали алгоритм "если id дня равен один то вывести надпись понедельник,если 2 то вторник"?

-~{}~ 01.03.09 19:52:

А как сделать чтоб оно выводилось по циклу и в зависимости от id дня?
я тебе два раза написал - как. Ты читать, вообще, умеешь? или только писать, как чукча?
 

x-yuri

Новичок
Но при этом надо сделать чтоб эти название дней выводились в обьедененной строке таблице перед записями на этот день
храни текущий день недели и выводи его когда он меняется
 

tashkentchi

Новичок
Код:
В переменную $day положи 0;
Цикл по строкам вывода
    Если day_id не равен $day, то
        Выведи название дня в объединенной строке
        В переменную $day положи day_id;
    Выведи остальное
Конец цикла
 
Сверху