Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод названия поля с определенным значением
 
 автор: Константин_Домнин   (01.11.2009 в 12:23)   письмо автору
 
 

Есть таблица успеваемости us с полями familiya,imya, matematika, fizika, istoriya ...и т.д
Небходимо вывести название поля для тех записей, где в каком-то одном поле значение равно 3, и в то же время в остальных полях больше 3.

Примерно так: (ученики с одной тройкой и показывается, по какому предмету тройка)
Иванов - matematika
Петров - istoriya
и тд...

Подскажите пожалуйста!

  Ответить  
 
 автор: Trianon   (01.11.2009 в 12:27)   письмо автору
 
   для: Константин_Домнин   (01.11.2009 в 12:23)
 

Меняйте структуру БД.
Данные "в горизонталь" не хранят.

  Ответить  
 
 автор: Константин_Домнин   (01.11.2009 в 12:50)   письмо автору
 
   для: Trianon   (01.11.2009 в 12:27)
 

>Меняйте структуру БД.
>Данные "в горизонталь" не хранят.

Из этой таблицы у меня запрашиваются и выводятся данные о количестве и фамилии отличников, ударников, троечников, с одной тройкой, двоечников, общие данные по классу и пр.
И в том числе выводятся фамилии тех, у кого одна тройка.
И ради названия предмета у ученика с одной тройкой менять структуру таблицы - это все запросы надо переделывать...нет лучше оставлю как есть
Спасибо за ответ!

  Ответить  
 
 автор: Trianon   (01.11.2009 в 12:52)   письмо автору
 
   для: Константин_Домнин   (01.11.2009 в 12:50)
 

Конечно, не ради названия предмета.
Ради того, чтоб сделать по-человечески. А не через жопу.

Ну почему все неофиты считают, что SQL-таблица это что-то вроде листа в экселе?

  Ответить  
 
 автор: Константин_Домнин   (01.11.2009 в 13:07)   письмо автору
 
   для: Trianon   (01.11.2009 в 12:52)
 

ну и в жопу тогда название этого поля, это вобщем-то и не надо было :)

  Ответить  
 
 автор: Trianon   (01.11.2009 в 13:33)   письмо автору
 
   для: Константин_Домнин   (01.11.2009 в 13:07)
 

и не одного.
Совершенно очевидно, что таких полей, число которых в общем случае не определено - математика, физика, история и т.п. - в SQL-таблице быть не должно.

  Ответить  
 
 автор: Константин_Домнин   (01.11.2009 в 21:29)   письмо автору
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]) ";}
и т.д.



====
ВСЕМ СПАСИБО!

  Ответить  
 
 автор: ols   (01.11.2009 в 22:44)   письмо автору
 
   для: Константин_Домнин   (01.11.2009 в 21:29)
 

Что мешает завести таблицу с предметами? Данные не хранят в названии столбцов. Вы бы еще по каждый предмет таблицу отдельную заводили :) Явно нарушаете принцип, основанный на отношениях.
Создайте таблицы - 1) Ученики 2) Предметы 3) Успеваемость
Все просто. При необходимости можно еще сделать таблицу учителей, которые ставят отметки. Также можно создать еще связную таблицу в которой хранится ключ для таблицы учителей и предметов, поскольку на объект таблицы учителей несколько объектов таблицы предметов

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования