SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.03.2008 18:49:55

loop69
Завсегдатай
Зарегистрирован: 07.10.2007
Сообщений: 28

выборка определенных полей из нескольких записей

Здравствуйте!

есть вот такая таблица

-
-- Структура таблицы `oo`
--

CREATE TABLE `oo` (
`god` int(4) NOT NULL default '0',
`klass` tinyint(2) NOT NULL default '0',
`fio` varchar(30) NOT NULL default '',
`rp_dz` tinyint(1) NOT NULL default '0',
`ips` tinyint(1) NOT NULL default '0',
`our` tinyint(1) NOT NULL default '0',
`t4` tinyint(1) NOT NULL default '0',
`tp` tinyint(1) NOT NULL default '0',
`tv` tinyint(1) NOT NULL default '0',
`oku` tinyint(1) NOT NULL default '0',
`okk` tinyint(1) NOT NULL default '0',
`okr` tinyint(1) NOT NULL default '0',
`okt` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`god`,`klass`,`fio`)
) TYPE=MyISAM;

С примари кей по трем первым полям.

В эту таблицу вносятся данные на людей. На каждый год - одна запись на человека.

Нужно выбрать данные из конкретных полей на одного человека за все годы, что было внесено.

SELECT `god`, `okt` FROM `oo` WHERE `fio`='$fio'; - не работает. Выбирает только за один первый год. А надо - за все годы.

Может цикл какой применить?

Неактивен

 

#2 05.03.2008 20:16:22

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: выборка определенных полей из нескольких записей

test >CREATE TABLE `oo` (
    -> `god` int(4) NOT NULL default '0',
    -> `klass` tinyint(2) NOT NULL default '0',
    -> `fio` varchar(30) NOT NULL default '',
    -> `rp_dz` tinyint(1) NOT NULL default '0',
    -> `ips` tinyint(1) NOT NULL default '0',
    -> `our` tinyint(1) NOT NULL default '0',
    -> `t4` tinyint(1) NOT NULL default '0',
    -> `tp` tinyint(1) NOT NULL default '0',
    -> `tv` tinyint(1) NOT NULL default '0',
    -> `oku` tinyint(1) NOT NULL default '0',
    -> `okk` tinyint(1) NOT NULL default '0',
    -> `okr` tinyint(1) NOT NULL default '0',
    -> `okt` tinyint(1) NOT NULL default '0',
    -> PRIMARY KEY (`god`,`klass`,`fio`)
    -> ) TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.20 sec)

test >insert into `oo` (god,klass,fio) values(1,1,'fio');
Query OK, 1 row affected (0.13 sec)

test >insert into `oo` (god,klass,fio) values(2,1,'fio');
Query OK, 1 row affected (0.00 sec)

test >SELECT `god`, `okt` FROM `oo` WHERE `fio`=fio;
+-----+-----+
| god | okt |
+-----+-----+
|   1 |   0 |
|   2 |   0 |
+-----+-----+
2 rows in set (0.09 sec)


Я полагаю, что знак доллара в Вашей записи лишь символизирует переменную и Вы не используете его в запросе.

Неактивен

 

#3 05.03.2008 20:53:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: выборка определенных полей из нескольких записей

Цикл надо организовать уже в PHP после выполнения запроса.

Неактивен

 

#4 05.03.2008 21:10:22

loop69
Завсегдатай
Зарегистрирован: 07.10.2007
Сообщений: 28

Re: выборка определенных полей из нескольких записей

угу, понял... Спасибо!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson