Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Две взаимосвязанные таблицы и запрос 
:(
    Опции темы
Артем125
Дата 21.10.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



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

Две таблицы хранят в себе обычную талбицу типа ехеl. Таблица содержит шапку и тело... как обычно

таблица содержащая шапку
Код

CREATE TABLE `tables_heading` (
  `heading_id` int(6) NOT NULL auto_increment,
  `category_id` int(11) default NULL,
  `heading_order` int(2) default NULL,
  `heading_name` varchar(255) default NULL,
  PRIMARY KEY  (`heading_id`),
  KEY `page_id` (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=925 ;

таблица тела
Код

CREATE TABLE `tables_body` (
  `body_id` int(6) NOT NULL auto_increment,
  `heading_id` int(6) default NULL,
  `body_rows` int(4) NOT NULL default '0',
  `body_value` text,
  PRIMARY KEY  (`body_id`),
  KEY `heading_id` (`heading_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3753 ;


например такие данные
код наименование цена (это шапка)
1     конфета         50
2     мухоморчик     750
3     трюфель         2500

Так вот.... это необходимо выбрать из таблицы и желательно построчно
тоесть выбираем шапку формируем html код <tr><td>Код</td>.....</tr>
          выбираем тело    формируем html код <tr><td>1</td>.....</tr>

Можно выбрать например код (шапка) и соответсвующий столбей... занести в массив,
и так еще два запроса.  Получается три запроса для шапки и три для тела... Накладно по расходам, очеень долго

Подскажите как можно?
PM MAIL   Вверх
youri
Дата 21.10.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



ты что, редактор таблиц пишешь?
PM   Вверх
Артем125
Дата 21.10.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



написал, только работает от 1 до 9 секунд. можно  добавление, удаление информации для каждой ячейки... проблема в том, как сделать в одном запросе....

Добавлено @ 19:44
Связь, цепочка извлечения такая: допустим есть значение category_id и оно общее для всей таблицы. По этому значению находим все ячейки шапки таблицы в heading_id. Для каждой heading_id находим свой body_id



Это сообщение отредактировал(а) Артем125 - 21.10.2009, 20:10
PM MAIL   Вверх
Артем125
Дата 21.10.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



Да здравствует MySql ! Столько времени php-шного экономит

Код

SELECT tables_heading.heading_name, tables_body.body_value, tables_body.body_id
FROM tables_heading, tables_body
WHERE tables_heading.category_id = '372'
AND tables_heading.heading_id = tables_body.heading_id
ORDER BY tables_heading.heading_order, tables_body.body_rows


В результате время выполнения с 1-9 секунд уменьшилось в разы и не превышает и половины секунды для таблицы 6 столбцов на 40  строк)))))


А для таблицы 10 столбцов на 99 строк 3 секунды ..... надо еще оптимизировать наверно

Это сообщение отредактировал(а) Артем125 - 21.10.2009, 22:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.