Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Komunikacja miejska
Forum PHP.pl > Forum > PHP
kurcacek888
//index.php
  1. <?php  
  2.  $przystanek_z = $POST['przystanek_z'];  
  3.  $przystanek_do = $POST['przystanek_do'];  
  4.    
  5.  ?>  
  6.    
  7.    
  8.  Z :  
  9.  <form action="szukaj.php" metod="post">  
  10.      <select name="przystanek_z">  
  11.          <option>Wspólna</option>  
  12.          <option>Zacisze</option>  
  13.          <option>Hetmańska</option>  
  14.          <option>Grunwaldzka</option>  
  15.          <option>Pomorska</option>  
  16.          <option>Mickiewicza</option>  
  17.          <option>Kujawska</option>  
  18.          <option>Przepałkowskiego</option>  
  19.          <option>Browarna</option>  
  20.          <option>Robotnicza</option>  
  21.          <option>Królewiecka</option>  
  22.          <option>3-maja</option>  
  23.      </select>  
  24.    
  25.  Do :  
  26.    
  27.      <select name="przystanek_do">  
  28.          <option>Wspólna</option>  
  29.          <option>Zacisze</option>  
  30.          <option>Hetmańska</option>  
  31.          <option>Grunwaldzka</option>  
  32.          <option>Pomorska</option>  
  33.          <option>Mickiewicza</option>  
  34.          <option>Kujawska</option>  
  35.          <option>Przepałkowskiego</option>  
  36.          <option>Browarna</option>  
  37.          <option>Robotnicza</option>  
  38.          <option>Królewiecka</option>  
  39.          <option>3-maja</option>  
  40.      </select>  
  41.    
  42.    
  43.    
  44.  <input name="btnSzukaj" type="SUBMIT" id="btnSzukaj" value="Szukaj">  
  45.  </form>


//szukaj.php
  1. <?php
  2. $_SESSION = array();
  3. $aktywne_z[6];
  4. $aktywne_do[6];
  5. $aktywna=0 ;
  6.  
  7. $liczba = 0;
  8. $liczba2 = 0;
  9.  
  10.  
  11. $polaczenia = Array(
  12.      'linia_1' => array('Grunwaldzka','07:00','11:00','15:00', 'Kujawska','07:30','11:30','15:30', 'Robotnicza','08:15','12:15','16:15', '3-maja' ,'09:02','13:02','17:02', 'Pomorska','09:18','13:18','17:18', 'Zacisze','09:58','13:58','17:58', 'Królewiecka','10:22','14:22','18:22', 'Wspólna','11:00','15:00','19:00' ),
  13.      'linia_2' => array('Wspólna','07:00','11:00','15:00', 'Królewiecka','07:30','11:30','15:30', 'Zacisze','08:15','12:15','16:15', 'Pomorska' ,'09:02','13:02','17:02', '3-maja','09:18','13:18','17:18', 'Robotnicza','09:58','13:58','17:58', 'Kujawska','10:22','14:22','18:22', 'Grunwaldzka','11:00','15:00','19:00'),
  14.      'linia_3' => array('Mickiewicza','10:00','16:00','18:00', 'Przepałkowskiego','10:25','16:25','18:25', 'Robotnicza','10:52','16:52','18:52', '3-maja','11:22','17:22','19:22',  'Zacisze','11:35','17:35','19:35', 'Pomorska','11:50','17:50','19:50', 'Hetmańska','12:10','18:10','20:10', 'Browarna','12:30','18:30','20:30'),
  15.      'linia_4' => array('Browarna','10:00','16:00','18:00', 'Hetmańska','10:25','16:25','18:25', '3-maja','10:52','16:52','18:52', 'Robotnicza' ,'11:22','17:22','19:22','Pomorska','11:35','17:35','19:35', 'Zacisze','11:50','17:50','19:50', 'Przepałkowskiego','12:10','18:10','20:10', 'Mickiewicza','12:30','18:30','20:30'),
  16.      'linia_5' => array('Kujawska','08:00','12:00','16:00', 'Grunwaldzka','08:22','12:22','16:22', 'Wspólna','08:45','12:45','16:45', 'Przepałkowskiego' ,'09:17','13:17','17:17', 'Królewiecka','09:40','13:40','17:40', 'Zacisze','10:01','14:01','18:01', 'Browarna','10:27','14:27','18:27', 'Hetmańska','10:50','14:50','18:50'),
  17.      'linia_6' => array('Hetmańska','08:00','12:00','16:00', 'Browarna','08:22','12:22','16:22', 'Zacisze','08:45','12:45','16:45', 'Królewiecka' ,'09:17','13:17','17:17', 'Przepałkowskiego','09:40','13:40','17:40', 'Wspólna','10:01','14:01','18:01', 'Grunwaldzka','10:27','14:27','18:27', 'Kujawska','10:50','14:50','18:50')
  18.  );
  19.  
  20.  
  21. foreach ( $polaczenia as $linia => $polaczenie )
  22.  {    
  23.      for ( $i = 0; $i < count($polaczenie); $i+=4 )
  24.      {
  25.          if($przystanek_z == $polaczenie[$i])
  26.          {
  27.              $aktywne_z[$liczba] = $linia;
  28.              $liczba++;
  29.          }
  30.          
  31.          if ($przystanek_do == $polaczenie[$i])
  32.          {
  33.             $aktywne_do[$liczba2] = $linia;
  34.             $liczba2++;
  35.          }
  36.      }
  37. }
  38.  
  39.      for ( $i = 0; $i < count($aktywne_z); $i++ )
  40.        {
  41.            for( $j = 0; $j < count($aktywne_do); $j++)  
  42.            {
  43.                if($aktywne_z[$i] == $aktywne_do[$j])
  44.                {
  45.                $_SESSION['z'] = $_POST['przystanek_z'];
  46.                $_SESSION['do'] = $_POST['przystanek_do'];
  47.                $_SESSION['aktywne'] = $aktywne_z[$i];
  48.                $_SESSION['polaczenie'] = $polaczenia;
  49.                header('Location: wynik.php');
  50.                break;
  51.                }
  52.            }
  53.        }      
  54.      
  55. ?>

//wynik.php
  1. <?php  
  2.  session_start();  
  3.    
  4.  $element_z = 0;  
  5.  $element_do = 0;  
  6.  $pietro = 'linia_2';  
  7.    
  8.   echo $_SESSION['polaczenie'][$pietro][$j];  
  9.        
  10.  echo $_SESSION['aktywne'];  
  11.  for ( $i = 0, $j = 1; $i < 8; $i++,$j+=4 )  
  12.  {  
  13.      if ($_SESSION['polaczenie'][$_SESSION['aktywne']][$j] == $_SESSION['z'])  
  14.      {  
  15.          echo $_SESSION['polaczenie'][$j][$pietro];  
  16.          //echo $_SESSION['polaczenie']['linia_2'][$j];  
  17.          break;  
  18.      }  
  19.      $element_z++;  
  20.  }  
  21.  echo $element_z;  
  22.      
  23.  ?>

Na stronie index.php wybieramy dwie zmienne ( przystanek_z przystanek_do ) nastepnie skrypt sprawdza na jakich liniach znajduja sie dane przystanki. Na ostatniej podstronie szukane jest ewentualne polaczenie (bezposrednie). Zastanawiam sie jak dodac kod ktory szukalby przejazdu z jedna przesiadka . Moze ktos pomoc Z gory thx smile.gif
pejotr
poraktuj sieć komunikacyjną jako graf, znajdź najkrótszą/dowolną trasę miedzy dwoma przystankami i sprawdź ile na niej jest przesiadek. Jesli jedna to... jeśli więcej to...
kurcacek888
Można trochę jaśniej z tymi grafami, bo nie bardzo wiem o co chodzi sad.gif
mike
Cytat(kurcacek888 @ 25.02.2009, 15:07:28 ) *
Można trochę jaśniej z tymi grafami, bo nie bardzo wiem o co chodzi sad.gif
To doczytaj sobie. Czy tak trudno poszukać sobie informacji co to jest graf?
Pojęcie związane z matematyką (nie uczą tego w gimnazjum i liceum tongue.gif). Jeśli nie znasz grafów i/lub ich nie rozumiesz to zacznij od matematyki wyżej, żeby je poznać.
kurcacek888
wiem co to jest graf jak zaczynalem robic w ogole ten projekt to od niego zaczynalem. Nie bardzo dalej wiem jaka petle stworzyc do tego aby akurat wskazywala mi na przesiadke i trase na ktorym przystanku trzeba sie akurat przesiasc ;/
wrzasq
znajdywanie drogi w grafie to chyba podstawa podstaw w jakichkolwiek strukturach i algorytmach. jesli nie potrafisz ich obslugiwac to nie zajmuj sie programowaniem, tylko poczytaj ksiazki, na forum ci nikt nie wytlumaczy, bo to obszerny temat, ani uczyc sie za ciebie nikt nie bedzie. nie bierz sie za cos, czego nie potrafisz zrobic.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.