|
|
|
| Есть таблица успеваемости us с полями familiya,imya, matematika, fizika, istoriya ...и т.д
Небходимо вывести название поля для тех записей, где в каком-то одном поле значение равно 3, и в то же время в остальных полях больше 3.
Примерно так: (ученики с одной тройкой и показывается, по какому предмету тройка)
Иванов - matematika
Петров - istoriya
и тд...
Подскажите пожалуйста! | |
|
|
|
|
|
|
|
для: Константин_Домнин
(01.11.2009 в 12:23)
| | Меняйте структуру БД.
Данные "в горизонталь" не хранят. | |
|
|
|
|
|
|
|
для: Trianon
(01.11.2009 в 12:27)
| | >Меняйте структуру БД.
>Данные "в горизонталь" не хранят.
Из этой таблицы у меня запрашиваются и выводятся данные о количестве и фамилии отличников, ударников, троечников, с одной тройкой, двоечников, общие данные по классу и пр.
И в том числе выводятся фамилии тех, у кого одна тройка.
И ради названия предмета у ученика с одной тройкой менять структуру таблицы - это все запросы надо переделывать...нет лучше оставлю как есть
Спасибо за ответ! | |
|
|
|
|
|
|
|
для: Константин_Домнин
(01.11.2009 в 12:50)
| | Конечно, не ради названия предмета.
Ради того, чтоб сделать по-человечески. А не через жопу.
Ну почему все неофиты считают, что SQL-таблица это что-то вроде листа в экселе? | |
|
|
|
|
|
|
|
для: Trianon
(01.11.2009 в 12:52)
| | ну и в жопу тогда название этого поля, это вобщем-то и не надо было :) | |
|
|
|
|
|
|
|
для: Константин_Домнин
(01.11.2009 в 13:07)
| | и не одного.
Совершенно очевидно, что таких полей, число которых в общем случае не определено - математика, физика, история и т.п. - в SQL-таблице быть не должно. | |
|
|
|
|
 98.6 Кб |
|
|
для: Trianon
(01.11.2009 в 13:33)
| | >и не одного.
>Совершенно очевидно, что таких полей, число которых в общем случае не определено - математика, физика, история и т.п. - в SQL-таблице быть не должно.
========
Попробовал через ПХП, получилось :)
понимаю, что через жо..., но работы зато меньше...
1) объявил массив, в который занес названия полей:
# Поля предметов в таблице начанаются с номера 4
$p=array(
4 => "русский",
5 => "литература",
6 => "математика",
7 => "окр_мир",
8 => "музыка",
9 => "ИЗО",
10 => "Технология",
11 => "Физкультура"
);
|
2) делаю запрос на выборку учеников с одной тройкой,
проверяю в ассоц массиве значения полей, и если оно ==3, то вывожу p[i]:
while ($tablerows = mysql_fetch_row($sql7))
{
for ($i = 4; $i <= 11; $i++)
{
if ($tablerows[i]==3)
{
echo "$p[i]";
}
}
}
|
правда что-то цикл не работает, поэтому пока пришлось по тупому:
if ($tablerows[4]=="3")
{echo " ($p[4]) ";}
if ($tablerows[5]=="3")
{echo " ($p[5]) ";}
и т.д.
|
====
ВСЕМ СПАСИБО! | |
|
|
|
|
|
|
|
для: Константин_Домнин
(01.11.2009 в 21:29)
| | Что мешает завести таблицу с предметами? Данные не хранят в названии столбцов. Вы бы еще по каждый предмет таблицу отдельную заводили :) Явно нарушаете принцип, основанный на отношениях.
Создайте таблицы - 1) Ученики 2) Предметы 3) Успеваемость
Все просто. При необходимости можно еще сделать таблицу учителей, которые ставят отметки. Также можно создать еще связную таблицу в которой хранится ключ для таблицы учителей и предметов, поскольку на объект таблицы учителей несколько объектов таблицы предметов
[поправлено модератором] | |
|
|
|