|
|
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Имеется очень маленькая база данных состоящая из следующих таблиц: уроки (id_urok, дата, предмет), студенты (id_stud, фамилия), оценки (id, id_urok, id_stud, оценка). Как создать запрос, который формирует таблицу, в которой в первом столбце содержится список всех студентов, а во втором и последующих столбцах все оценки студента по данному предмету? В заголовке столбцов, содержащих оценки должна стоять дата урока. Пробовал так: <?php $mysql = mysql_connect('localhost', 'root'); $selected = mysql_select_db('base'); $query = "SELECT student.fam, lesson.data_les, ocenka.ocenka FROM student, lesson, ocenka WHERE ocenka.id_urok = lesson.id_urok and ocenka.id_stud = student.id_stud and lesson.predm = 'математика'"; $result = mysql_query($query); $query2 = "SELECT * FROM student"; $result2 = mysql_query($query2); while ($row = mysql_fetch_assoc($result)) $data[] = $row; ?> <table border="1"> <?php while ($row = mysql_fetch_assoc($result2)) { echo "<tr><td>".$row['fam']."</td>"; foreach ($data as $item): echo "<td>".$item['ocenka']."</td>"; endforeach; echo "</tr>"; } ?> Но в каждой строке таблицы выводятся все оценки всех студентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 21:06:56 |
|
||
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
matematik, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Дальше напечатать эту матрицу. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 21:23:34 |
|
||
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
matematikДоброго времени суток! Имеется очень маленькая база данных состоящая из следующих таблиц: уроки (id_urok, дата, предмет), студенты (id_stud, фамилия), оценки (id, id_urok, id_stud, оценка). Как создать запрос, который формирует таблицу, в которой в первом столбце содержится список всех студентов, а во втором и последующих столбцах все оценки студента по данному предмету? В заголовке столбцов, содержащих оценки должна стоять дата урока. . это очень хороший пример того, какие запросы писать НЕ надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 00:25:33 |
|
||
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
matematik, Все висит на оценках - с них и начинайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:38:09 |
|
||
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
matematik...уроки (id_urok, дата, предмет), студенты (id_stud, фамилия), оценки (id, id_urok, id_stud, оценка). Как создать запрос, который формирует таблицу, в которой в первом столбце содержится список всех студентов, а во втором и последующих столбцах все оценки студента по данному предмету? В заголовке столбцов, содержащих оценки должна стоять дата урока. Количество студентов (строк) слева будет равно произведению количества уроков и оценок справа. Фамилия предм оц ------------------- Иванов математика 5 Иванов математика 2 Иванов математика 3 Иванов русский 1 Иванов русский 5 ... и так далее. ТЗ в цитате говорит ниочем. Варианты group_concat() ... group by ... having могут дать такой вид Фамилия предм оц ------------------- Иванов математика 5, 2, 3 Иванов русский 1, 5 Или такой Фамилия предм оц -------------------- Иванов математика 5,2,3; русский 1,5 Если по одному предмету см первый. Если вообще за урок - без вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:46:33 |
|
||
|
Формирование таблицы наподобие классного журнала.
|
|||
|---|---|---|---|
|
#18+
Запрос на все: Код: sql 1. 2. 3. От него танцуйте остальные варианты right join по идее покажет именно всех студентов, в том числе которые систематически прогуливали и остались без оценок по тому или иному предмету. Без right (left) список включит только студентов с оценками. Например запрос ниже должен вернуть список студов по предметам и всеми оценками через запятую в отдельном поле vals: Код: sql 1. 2. 3. 4. По предмету Код: sql 1. 2. 3. 4. 5. Или в джойне Код: sql 1. 2. 3. 4. Ну и тд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:02:11 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38541628&tid=1835325]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
13ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 256ms |

| 0 / 0 |
