![]() |
|
Модераторы: skyboy |
![]()
|
|
| oppo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
Привет - есть 3 таблицы
------------------------------------- заезды CREATE TABLE `#__gintur_zaezdid` ( `zaezdid` int(11) NOT NULL default '0', // завязано с ID `#__gintur_pricing `numerid` int(11) NOT NULL default '0', //// завязано с ID `#__gintur_numera` `dopzaezd` int(11) NOT NULL default '0', `otel` int(11) NOT NULL default '0', `zena` varchar(150) NOT NULL default '', `mesta` varchar(254) NOT NULL default '', PRIMARY KEY (`zaezdid`,`numerid`,`dopzaezd`), KEY `idx_gintur_zaezdid` (`numerid`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; ------------- заезды - связано с zaezdid CREATE TABLE `#__gintur_pricing` ( `id` int(10) NOT NULL auto_increment, `accid` int(10) NOT NULL default '0', `title` varchar(150) NOT NULL default '', `description` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; --------------- номера связано с numerid CREATE TABLE `#__gintur_numera` ( `id` int(11) NOT NULL auto_increment, `description` varchar(200) NOT NULL default '', `dop` mediumtext NOT NULL, `otel` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; =========== запрос составил такой $query= "SELECT p.title AS ptitle,p.id AS pid, z.*,n.description AS ntitle,n.id AS nid " . "\nFROM #__gintur_zaezdid AS z " . "\n LEFT JOIN #__gintur_pricing AS p ON p.id=z.zaezdid " . "\n LEFT JOIN #__gintur_numera AS n ON n.id =z.numerid " . "\nWHERE p.accid='".($row ->id)."' AND z.otel = '".($row ->id)."' AND n.otel = '".($row ->id)."' " ."\n ORDER BY p.id" ; А потом из этого всего должна создаться табличка # | Заезд1 | Заезд2 | Заезд3 ================================================= Номер1 | цена/места/скидки | цена/места/скидки | цена/места/скидки Номер2 | цена/места/скидки | цена/места/скидки | цена/места/скидки Номер3 | цена/места/скидки | цена/места/скидки | цена/места/скидки ////// и так далее кол-во столбцов (от кол-ва Заездов ) и ячеек (от кол-ва Номеров) формируется динамичечки - вот загвоздка + завязка цена/места/скидки от Заездов и Номеров |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Значит и текст запроса надо формировать динамически в PHP-коде. У MySQL напряги с перекрестными запросами... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oppo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
не хотелось бы запросы к базе вводить в цикл - может можно одним обойтись ? $query= "SELECT p.id AS pid,p.title AS ptitle, z.*,n.id AS nuid, n.description AS nutitle" . "\nFROM #__gintur_zaezdid AS z " . "\n LEFT JOIN #__gintur_pricing AS p ON p.id=z.zaezdid " . "\n LEFT JOIN #__gintur_numera AS n ON n.id =z.numerid " . "\nWHERE p.accid='".($row ->id)."' AND z.otel = '".($row ->id)."' AND n.otel = '".($row ->id)."' " ."\n ORDER BY p.id,nuid " ; //где $row ->id =2 // связь по отелю Наглядно если вывести в массив == оно выглядит так : Array ( [0] => Array ( [pid] => 16 [ptitle] => Заезд1 [zaezdid] => 16 [numerid] => 3 [dopzaezd] => 2 [otel] => 2 [zena] => цена 1 [mesta] => есть [nuid] => 3 [nutitle] => Номер1 ) [1] => Array ( [pid] => 16 [ptitle] => Заезд1 [zaezdid] => 16 [numerid] => 4 [dopzaezd] => 1 [otel] => 2 [zena] => цена 2 [mesta] => да [nuid] => 4 [nutitle] => Номер2 ) [2] => Array ( [pid] => 16 [ptitle] => Заезд1 [zaezdid] => 16 [numerid] => 5 [dopzaezd] => 2 [otel] => 2 [zena] => цена 3 [mesta] => пропили [nuid] => 5 [nutitle] => Номер3 ) [3] => Array ( [pid] => 16 [ptitle] => Заезд1 [zaezdid] => 16 [numerid] => 6 [dopzaezd] => 1 [otel] => 2 [zena] => цена 4 [mesta] => только [nuid] => 6 [nutitle] => Номер4 ) [4] => Array ( [pid] => 18 [ptitle] => Заезд2 [zaezdid] => 18 [numerid] => 3 [dopzaezd] => 0 [otel] => 2 [zena] => == [mesta] => 0 [nuid] => 3 [nutitle] => Номер1 ) [5] => Array ( [pid] => 18 [ptitle] => Заезд2 [zaezdid] => 18 [numerid] => 4 [dopzaezd] => 0 [otel] => 2 [zena] => == [mesta] => 0 [nuid] => 4 [nutitle] => Номер2 ) [6] => Array ( [pid] => 18 [ptitle] => Заезд2 [zaezdid] => 18 [numerid] => 5 [dopzaezd] => 0 [otel] => 2 [zena] => == [mesta] => 0 [nuid] => 5 [nutitle] => Номер3 ) [7] => Array ( [pid] => 18 [ptitle] => Заезд2 [zaezdid] => 18 [numerid] => 6 [dopzaezd] => 0 [otel] => 2 [zena] => == [mesta] => 0 [nuid] => 6 [nutitle] => Номер4 ) [8] => Array ( [pid] => 19 [ptitle] => Заезд3 [zaezdid] => 19 [numerid] => 3 [dopzaezd] => 0 [otel] => 2 [zena] => заезд3 1 [mesta] => местазаезд3 1 [nuid] => 3 [nutitle] => Номер1 ) [9] => Array ( [pid] => 19 [ptitle] => Заезд3 [zaezdid] => 19 [numerid] => 4 [dopzaezd] => 0 [otel] => 2 [zena] => заезд3 2 [mesta] => местазаезд3 2 [nuid] => 4 [nutitle] => Номер2 ) [10] => Array ( [pid] => 19 [ptitle] => Заезд3 [zaezdid] => 19 [numerid] => 5 [dopzaezd] => 0 [otel] => 2 [zena] => заезд3 3 [mesta] => местазаезд3 3 [nuid] => 5 [nutitle] => Номер3 ) [11] => Array ( [pid] => 19 [ptitle] => Заезд3 [zaezdid] => 19 [numerid] => 6 [dopzaezd] => 0 [otel] => 2 [zena] => заезд3 4 [mesta] => местазаезд3 4 [nuid] => 6 [nutitle] => Номер4 ) ) цена=[zena] места=[mesta] скидки=[dopzaezd] В РЕЗУЛЬТАТЕ НУЖНО ПОЛУЧИТЬ ИЗ всего таблицу : | Заезд1 | Заезд2 | Заезд3 ================================================= Номер1 | цена/места/скидки | цена/места/скидки | цена/места/скидки Номер2 | цена/места/скидки | цена/места/скидки | цена/места/скидки Номер3 | цена/места/скидки | цена/места/скидки | цена/места/скидки Номер4 | цена/места/скидки | цена/места/скидки | цена/места/скидки Это сообщение отредактировал(а) oppo - 2.7.2008, 10:29 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Какой цикл??? Два запроса. Первый позволяет получить список полей, которые надо получать во втором запросе. Соответствено по результатам первого строится второй с необходимыми полями, условиями отбора и групировки. Он и вернет нужные данные в нужной форме. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oppo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
можно разжевать как пример - дело магарычевое Мне указали как пример сделать так - только первый столбец из названий номеров а первая строка из заездов http://laspi.com/sanat/01/price http://laspi.com/sanat/58/price Это сообщение отредактировал(а) oppo - 2.7.2008, 10:47 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Чего тут собсно разжевывать? Ты что, неспособен получить имена полей таблицы? или может не способен построить SQL-строку запроса?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oppo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
могу , но туплю
Цитата : “что позволено Цезарю, не позволено быку”. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |