Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP, MySQL] Wyszukiwarka autobusów
#1
Exclamation 
Witam, mam autobusy które kursują z przystanku A do B i z C do D. Wyszukiwanie takich połączeń nie stanowi problemu. Problemem staje się już jak chcę dojechać z A do D. Wtedy trzeba odszukać miejsce X które będzie miejscem przesiadki lub przesiadek. Niestety nie mam prostego sposobu który mi to w tym pomoże. Na samym początku chciałbym pokazać strukturę bazy danych:

Kod:
--
-- Struktura tabeli dla  `mzk_cms_accounts`
--

CREATE TABLE `mzk_cms_accounts` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `login` varchar(30) collate utf8_polish_ci default NULL,
  `pass` char(32) collate utf8_polish_ci default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;

-- --------------------------------------------------------

--
-- 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=26 ;

-- --------------------------------------------------------

--
-- 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',
  `time` time NOT NULL,
  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=16031 ;

-- --------------------------------------------------------

--
-- 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=30 ;

-- --------------------------------------------------------

--
-- 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=50 ;

-- --------------------------------------------------------

--
-- 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=16 ;

-- --------------------------------------------------------

--
-- 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=1402 ;

-- --------------------------------------------------------

--
-- 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=876 ;

-- --------------------------------------------------------

--
-- 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=235 ;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_settings`
--

CREATE TABLE `mzk_cms_settings` (
  `cmsTitle` text collate utf8_polish_ci NOT NULL,
  `cmsKeywords` text collate utf8_polish_ci NOT NULL,
  `cmsDescription` text collate utf8_polish_ci NOT NULL,
  `cmsURLPage` text collate utf8_polish_ci NOT NULL,
  `cmsTemplate` text collate utf8_polish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

-- --------------------------------------------------------

--
-- 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=237 ;

oraz przykładowe dane:

Kod:
--
-- Zrzut danych tabeli `mzk_cms_accounts`
--

INSERT INTO `mzk_cms_accounts` (`id`, `login`, `pass`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3');

--
-- Zrzut danych tabeli `mzk_cms_autobusy`
--

INSERT INTO `mzk_cms_autobusy` (`id`, `alias`, `nazwa`, `opis`) VALUES
(1, '4', '4', NULL),
(2, '7', '7', NULL),
(3, '2', '2', NULL),
(4, '8', '8', NULL),
(5, '46', '46', NULL)

--
-- Zrzut danych tabeli `mzk_cms_godziny`
--

INSERT INTO `mzk_cms_godziny` (`id`, `oid`, `pid`, `godzina`, `time`) VALUES
(1, 1, 6, 27000, '12:00:00'),
(2, 1, 8, 27120, '00:00:00'),
(3, 1, 9, 27180, '00:00:00'),
(4, 1, 10, 27240, '00:00:00'),
(5, 1, 11, 27360, '00:00:00')

--
-- Zrzut danych tabeli `mzk_cms_kierunki`
--

INSERT INTO `mzk_cms_kierunki` (`id`, `alias`, `nazwa`) VALUES
(1, 'os-zasole-ii-zasole-petla-stare-stawy-spolem', 'Os. Zasole II / Zasole Pętla / Stare Stawy / Społem'),
(2, 'zaklady-chemiczne-dworzec-fabryczny', 'Zakłady Chemiczne / Dworzec Fabryczny'),
(3, 'stare-stawy', 'Stare Stawy'),
(4, 'zaklady-chemiczne', 'Zakłady Chemiczne'),
(5, 'zaklady-chemiczne-dwory', 'Zakłady Chemiczne / Dwory')

--
-- Zrzut danych tabeli `mzk_cms_kursy`
--

INSERT INTO `mzk_cms_kursy` (`id`, `aid`, `kid`, `przystanki`, `waznosc`) VALUES
(1, 1, 1, '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27', '2011-08-20 15:40:42'),
(2, 1, 2, '23,22,21,20,19,18,17,16,15,28,14,29,30,12,11,10,9,8,7,6,5,31,4,3,2,1', '2011-08-20 16:52:42'),
(3, 2, 3, '16,32,14,29,33,22,23', '2011-08-21 09:01:14'),
(4, 2, 4, '6,5,34,35,33,22,23', '2011-08-21 09:02:47'),
(5, 3, 5, '16,17,18,19,21,22,23,22,33,35,34,5,6,36,7,37,38', '2011-08-21 09:37:29')
--
-- Zrzut danych tabeli `mzk_cms_legenda`
--

INSERT INTO `mzk_cms_legenda` (`id`, `skrot`, `opis`) VALUES
(1, 'x', 'kurs w dni robocze'),
(2, 'l', 'kursuje wyłącznie w dni nauki szkolnej'),
(3, 'z', 'kursuje w soboty'),
(4, '+', 'kursuje w niedziele'),
(5, 'm', 'nie kursuje 24.12')

--
-- Zrzut danych tabeli `mzk_cms_legenda_odjazdy`
--

INSERT INTO `mzk_cms_legenda_odjazdy` (`id`, `oid`, `lid`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 2, 1),
(4, 3, 3),
(5, 3, 4)

--
-- Zrzut danych tabeli `mzk_cms_odjazdy`
--

INSERT INTO `mzk_cms_odjazdy` (`id`, `nazwa`, `tid`, `dni`) VALUES
(1, NULL, 1, '1,2,3,4,5'),
(2, NULL, 1, '1,2,3,4,5'),
(3, NULL, 1, '6,7'),
(4, NULL, 1, '6'),
(5, NULL, 1, '7')

--
-- Zrzut danych tabeli `mzk_cms_przystanki`
--

INSERT INTO `mzk_cms_przystanki` (`id`, `alias`, `nazwa`, `x`, `y`) VALUES
(1, 'dworzec-fabryczny', 'Dworzec Fabryczny', NULL, NULL),
(2, 'gazy-techniczne', 'Gazy Techniczne', NULL, NULL),
(3, 'monowice', 'Monowice', NULL, NULL),
(4, 'brama', 'Brama', NULL, NULL),
(5, 'lodowisko', 'Lodowisko', NULL, NULL)

--
-- Zrzut danych tabeli `mzk_cms_settings`
--

INSERT INTO `mzk_cms_settings` (`cmsTitle`, `cmsKeywords`, `cmsDescription`, `cmsURLPage`, `cmsTemplate`) VALUES
('tytul', 'slowa', 'opis', 'http://domena.pl/', 'tpl');

--
-- Zrzut danych tabeli `mzk_cms_trasy`
--

INSERT INTO `mzk_cms_trasy` (`id`, `kid`, `przystanki`) VALUES
(1, 1, '|6|8|9|10|11|12|13|14|15|16|17|18|19|20|'),
(2, 1, '|6|8|9|10|11|12|13|14|15|16|24|25|26|27|'),
(3, 1, '|6|8|9|10|11|12|13|14|15|16|17|18|19|21|22|23|'),
(4, 1, '|1|2|3|4|5|6|8|9|10|11|12|13|14|15|16|17|18|19|20|'),
(5, 1, '|1|2|3|4|5|6|8|9|10|11|12|13|14|15|16|17|18|19|21|22|23|')

mam nadzieje, że to pomoże w weryfikacji bazy.

poproszę sugestie odnośnie tego wyszukiwania
Odpowiedz
#2
Weź wrzuć jakiegoś dumpa w formacie .sql, bo nie chce mi się tego przeszukiwać.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,035 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,929 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,926 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,453 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,560 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl