![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam taką oto konstrukcję dla wyszukiwarki autobusów MZK
Kod -- -- Struktura tabeli dla `mzk_cms_autobusy` -- CREATE TABLE `mzk_cms_autobusy` ( `id` smallint(5) unsigned NOT NULL auto_increment, `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'unikalny alias autobusu', `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa autobusu, np.: numer', `opis` text collate utf8_polish_ci COMMENT 'opis autobusu', PRIMARY KEY (`id`), UNIQUE KEY `UNIQUE` (`alias`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Tabela z autobusami' AUTO_INCREMENT=9; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_godziny` -- CREATE TABLE `mzk_cms_godziny` ( `id` smallint(5) unsigned NOT NULL auto_increment, `oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu', `pid` smallint(5) unsigned default '0' COMMENT 'id przystanku', `godzina` mediumint(8) unsigned default '0', PRIMARY KEY (`id`), KEY `ODJAZDY` (`oid`), KEY `PRZYSTANKI` (`pid`), KEY `Godzina` (`godzina`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='godzina przyjazdu na przystanek' AUTO_INCREMENT=2629; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_kierunki` -- CREATE TABLE `mzk_cms_kierunki` ( `id` smallint(5) unsigned NOT NULL auto_increment, `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'alias kursu', `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa kursu', PRIMARY KEY (`id`), UNIQUE KEY `alias` (`alias`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kierunki jazdy' AUTO_INCREMENT=12; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_kursy` -- CREATE TABLE `mzk_cms_kursy` ( `id` smallint(5) unsigned NOT NULL auto_increment, `aid` smallint(5) unsigned default '0' COMMENT 'id autobusu', `kid` smallint(5) unsigned default '0' COMMENT 'id kierunku', `przystanki` text collate utf8_polish_ci, `waznosc` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `AUTOBUSY` (`aid`), KEY `KIERUNKI` (`kid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kursy autobusów' AUTO_INCREMENT=15; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_legenda` -- CREATE TABLE `mzk_cms_legenda` ( `id` smallint(5) unsigned NOT NULL auto_increment, `skrot` varchar(5) collate utf8_polish_ci default NULL, `opis` text collate utf8_polish_ci, PRIMARY KEY (`id`), UNIQUE KEY `skrot` (`skrot`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=8; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_legenda_odjazdy` -- CREATE TABLE `mzk_cms_legenda_odjazdy` ( `id` smallint(5) unsigned NOT NULL auto_increment, `oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu', `lid` smallint(5) unsigned default '0' COMMENT 'id skrótu w legendzie', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=268; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_odjazdy` -- CREATE TABLE `mzk_cms_odjazdy` ( `id` smallint(5) unsigned NOT NULL auto_increment, `nazwa` varchar(100) collate utf8_polish_ci default NULL, `tid` smallint(5) unsigned default '0' COMMENT 'id trasy', `dni` set('1','2','3','4','5','6','7') collate utf8_polish_ci NOT NULL, PRIMARY KEY (`id`), KEY `TRASY` (`tid`), KEY `DNI` (`dni`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Odjazdy autobusów' AUTO_INCREMENT=187; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_przystanki` -- CREATE TABLE `mzk_cms_przystanki` ( `id` smallint(5) unsigned NOT NULL auto_increment, `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'lias przystanku', `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa przystanku', `x` float unsigned default NULL COMMENT 'szerokość geograficzna przystanku', `y` float unsigned default NULL COMMENT 'długość geograficzna przystanku', PRIMARY KEY (`id`), UNIQUE KEY `UNIQUE` (`alias`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='przystanki autobusowe' AUTO_INCREMENT=63; -- -------------------------------------------------------- -- -- Struktura tabeli dla `mzk_cms_trasy` -- CREATE TABLE `mzk_cms_trasy` ( `id` smallint(5) unsigned NOT NULL auto_increment, `kid` smallint(5) unsigned default '0' COMMENT 'id kursu', `przystanki` text collate utf8_polish_ci COMMENT 'przystanki przez które jeżdżą autobusy w formie |1|2|3|', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='trasy, którymi jedzie autobus' AUTO_INCREMENT=44; Do wyszukiwania konkretnych autobusów wykorzystuje takie zapytanie: Kod SELECT `g` . * , `o`.`dni` FROM `mzk_cms_godziny` AS `g` LEFT JOIN `mzk_cms_przystanki` AS `p` ON `p`.`id` = `g`.`pid` LEFT JOIN `mzk_cms_odjazdy` AS `o` ON `o`.`id` = `g`.`oid` LEFT JOIN `mzk_cms_trasy` AS `t` ON `t`.`id` = `o`.`tid` LEFT JOIN `mzk_cms_kursy` AS `k` ON `k`.`id` = `t`.`kid` LEFT JOIN `mzk_cms_kierunki` AS `ki` ON `ki`.`id` = `k`.`kid` LEFT JOIN `mzk_cms_autobusy` AS `a` ON `a`.`id` = `k`.`aid` WHERE ( `t`.`przystanki` LIKE '%|16|%|6|%' ) AND ( `o`.`dni` LIKE '%1%' ) AND ( `g`.`pid` =16 ) AND ( `godzina` BETWEEN 72600 AND 73200 ) ORDER BY `g`.`godzina` ASC wyszukuje wszystkie autobusy, które odjeżdżają w poniedziałki z przystanku #16 miedzy godziną 20:10 a 20:20, które przejeżdżają przez przystanek #6 Jest możliwość ułatwienia tego zapytania? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 10:51 |