![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Czy macie może pomysł jak rozwiązać taki problem ? Chciałbym w MySQLu wykonać następujące zapytanie: CODE $zapytam = 'SELECT * FROM stacje BETWEEN '.$id_odjazdu.' AND '.$id_przyjazdu.' ' Natomiast aby wprowadzić $id_odjazdu i przyjazdu potrzebuje je najpierw wyciągnąć z bazy.... Na początku mam listę z której wybieram stację, chce np 3 stacje i 8 stację, i pomiędzy nimi mają się generować wyniki... czas, kilometry bla bla... chciałbym to zrobić na podstawie ID, że jak wybiorę np 3 stacje to id=3 i ostatnia stacje i jej id=8 i sql wyciąga tylko wszystko pomiędzy nimi... No kombinuje, i zgooglowałem, jakoś nie mam pomysłu... a Wy ? Ten post edytował mambus 8.12.2010, 02:03:14 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
chyba o to Ci chodzi -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, tylko te liczby nie chciałbym żeby były z ręki w kod wpisywane, tylko pobierane z bazy, na podstawie wybranej opcji w formularzu.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 11 Dołączył: 20.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja nie widzę problemu. Z tego co piszesz wynika że masz jakąś listę z tymi stacjami (bynajmniej ja tak to widzę). Więc do każdej pozycji tej listy, sczytajen z bazy jako value przypisujesz ID pobrane z bazy. Po czym po wysłaniu formularza umieszczasz te zwrócone wartości zamiast 2 i 9 w tym co podał ciekawskiii
Było by prościej jak byś napisał w jaki sposób przekazujesz te parametry wyszukiwania do skryptu. -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak jest. Oto kod z formularzami zapisany jako wyszukiwarka.php
CODE <div id="wyszukiwanie"> <form name="wybornik" method="get" action="stacje.php"> <p class="pola"> Z:</b> <select name="start" class="pola"></p> <option>wybierz...</option> <?php $pobieranie = 'SELECT nazwa_stacji FROM stacje'; $zapytuje = mysql_query($pobieranie); while ($wpisy = mysql_fetch_assoc($zapytuje)) { $przystanki = $wpisy['nazwa_stacji']; echo '<option>'.$przystanki.'</option>';} ?> </select> <br> <p class="pola">Do: <select name="docelowo" class="pola"></p> <option>wybierz...</option> <?php $pobieranie_a = 'SELECT nazwa_stacji FROM stacje'; $zapytuje_a = mysql_query($pobieranie_a); while($ciag = mysql_fetch_assoc($zapytuje_a)) { $przystaneczki = $ciag['nazwa_stacji']; echo '<option>'.$przystaneczki.'</option>';} ?> </select><br> <p class="pola">Godzina: <select name="godzina_odjazdu" class="pola"></p> <!-- BRAKOWAŁO TU NAZWY, zmienna się nie przekazywała przez GET a jest potrzebna przeciez do dalszych obliczeń--> <option>wybierz...</option> <?php $downloadowanie = 'SELECT odjazd FROM odjazdy_skarzysko'; $zapytanko = mysql_query($downloadowanie); while ($dane = mysql_fetch_assoc($zapytanko)) { $skarzysko_odjazdy = $dane['odjazd']; //$skarzysko_odjazdy_dwa = substr($skarzysko_odjazdy,0,5); $odjazd = date("H:i",strtotime($skarzysko_odjazdy)); echo '<option>'.$odjazd.'</option>'."\r\n"; } $sciaganie = 'SELECT godzina_starter FROM starter'; $z_sciaganie = mysql_query($sciaganie); while ($sciagnieto = mysql_fetch_assoc($z_sciaganie)) { $zz_sciaganie = $sciagnieto['godzina_starter']; $godzina_startu = date("H:i",strtotime($zz_sciaganie)); } ?> </select> a oto sam mechanizm: CODE <div id="content"> <?php include('wyszukiwarka.php'); /*wyszukiwarka połączeń*/ ?> <?php if (isset($_GET['godzina_odjazdu'])) { $godzina_odjazdu = $_GET['godzina_odjazdu']; // JEŚLI WYBRANA JEST GODZINA ODJAZDU TO JĄ ZACZYTUJEMY DO ZMIENNEJ } if (isset($_GET['godzina_zero'])) { $godzina_departury = $_GET['godzina_zero']; } if (isset($_GET['start'])) { $start = $_GET['start']; } if (isset($_GET['docelowo'])) { $docelowo = $_GET['docelowo']; } $odlot = $_GET['godzina_odjazdu']; ?> <table border="0" cellpadding="4" cellspacing="2" width="800px" class="tabelka_wyniki" bgcolor="#9c9c9c"> <thead> <tr bgcolor="#6d6d6d"> <th> </th> <th>STACJA</th> <th>ODJAZDY</th> <th>KILOMETRY</th> <th>BILET</th> <th>BILET 37%</th> <th>PUNKTY</th> </tr> </thead> <tbody> <?php include('switche.php'); $laczny_wynik = 'SELECT * FROM stacje WHERE stacja > id AND id < stacja , ORDER BY id'; $pobieranie = mysql_query($laczny_wynik); $godzina_departury = strtotime($godzina_departury); $godzina_odjazdu = strtotime($godzina_odjazdu); // TRZEBA ZAMIENIĆ PRZED PĘTLĄ ŁAŃCUCH NA ZNACZNIK CZASU while ($rekord = mysql_fetch_assoc($pobieranie)) { $stacja = $rekord['nazwa_stacji']; $id = $rekord['id']; $czas_podrozy = $rekord['czas']; $kilometry = $rekord['kilometr']; $kolejnosc = $rekord['id']; $sumator = $sumator + $kilometry; $kilometr_cena = 0.16; $cena_biletu = $sumator * $kilometr_cena; $cena_biletu = number_format($cena_biletu, 2, '.',''); $cena_studencka = $cena_biletu - 37 * $cena_biletu /100; $cena_studencka = number_format($cena_studencka, 2, '.',''); // ----------- OBLICZANIE CZASU DO KOLEJNEJ STACJI ------------------------- //$sugestia = date("08:30"); DALEŚ W PĘTLI WARTOSC POCZATKOWĄ ZMIENNEJ ![]() $czas_jazdy = $godzina_departury + $czas_podrozy * 60; $godzina_departury = $czas_jazdy; $rozklad = $godzina_odjazdu + $czas_podrozy * 60; $godzina_odjazdu = $rozklad; // GODZINA WPISANA DO ROZKŁADU JAZDY STAJE SIĘ GODZINĄ ODJAZDU ZE STACJI //echo $godzina_odjazdu." - ".$czas_podrozy." - ".$rozklad."<br>"; $rozklad = date('H:i', $rozklad); $czas_jazdy = date('H:i', $czas_jazdy); if ($sumator >= $przerywnik) { break;} echo '<tr bgcolor="#7e7e7e">'."\r\n"; echo '<td>'.$id.'</td>'; echo '<td><img src="images/wdol.gif"></td>'."\r\n"; echo '<td><a href="#">'.$stacja.'</a></td>'."\r\n"; echo ' <td>'.$rozklad.'</td>'."\r\n"; echo '<td>'.$sumator.'</td>'."\r\n"; echo '<td>'.$cena_biletu.' PLN</td>'."\r\n"; echo '<td>'.$cena_studencka.' PLN</td>'."\r\n"; echo '<td>'.PunktyLojalnosciowe($sumator).'</td>'."\r\n"; } $czas_jazdy = strtotime($czas_jazdy); $czas_laczny = $czas_jazdy - $czas_podrozy*60; ?> </tbody> </table> <table width="850px" border="0" cellpadding="4" cellspacing="1" bgcolor="#d2d2d2"> <tr bgcolor='#a8a8a8' class="tabelka_wyniki2"> <td>START</td> <td>CEL</td> <td>ODJAZD</td> <td>PRZYJAZD</td> <td>ODLEGŁOŚĆ</td> <td>CZAS JAZDY</td> <td>CENA NORM</td> <td>CENA 37%</td> </tr> <?php $czas_laczny = date("H:i", $czas_laczny); $czas = date("H:i"); echo '<p class="czas"><b><center>'.$czas.'</center></b></p>'; $sumator_dwa = $sumator - $kilometry; $cena_biletu_dwa = $sumator_dwa * $kilometr_cena; $cena_biletu_dwa = number_format($cena_biletu_dwa, 2, '.', ''); $cena_studencka_dwa = $cena_biletu_dwa - 37 * $cena_biletu_dwa / 100 ; $cena_studencka_dwa = number_format($cena_studencka_dwa, 2, '.', ''); $rozklad = strtotime($rozklad); $dojazd = $rozklad - $czas_podrozy * 60; $dojazd = date("H:i", $dojazd); ?> oczywiście zapytanie SELECT * FROM które jest powyżej jest nieprawidłowe... popróbuje teraz jeszcze z tym przypisaniem jako VALUE. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 11 Dołączył: 20.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze to używaj odpowiednich znaczników ani byle jakich.
Po drugie jeśli chcesz nadać tym polom na liście wartości id z bazy wystarczy ze zrobisz tak: echo '<option value="'.$wpisy['id'].'">'.$przystanki.'</option>';} Tyle że musisz najpierw pobrać to id bo obecnie w tym zapytaniu $pobieranie = 'SELECT nazwa_stacji FROM stacje'; pobierasz jedynie nazwę stacji. Jeśli zrobisz to według tego mojego przykładu po wysłaniu formularza zmienna $_GET['start'] będzie zawierała id wybranej stacji. A tak nawiasem mówiąc, czemu wysyłasz formularz za pomocą GET? Lubisz mieć bałagan w adresie strony? POST jest bezpieczniejszy bo dane nie są przekazywane za pomocą adresu strony. Ten post edytował blade-mrn 8.12.2010, 18:25:53 -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak... sam mechanizm różnicy działa, bo ID pokazuje mi prawidłowo. Ale po ustawieniu value w option pokazuje mi zamiast nazwy stacji jej numer, i nic więcej...
czyli jak mam pole STACJA ODJAZDU to pokazuje zamiast np RADOM to: 4 i tak dla każdej stacji... przez to pętla while przestała działać... działa na podstawie takiego pliczku 'switche.php' , zrobiłem to na zasadzie takiej że jak $sumator czyli zsumowana liczba kilometrów przekracza określoną w switchach wartość to pętla się przerywa... no właśnie - przerywa, a teraz nawet się nie generuje, tak jakby odrazu była ustawiona na 0. To może załącze switche.php Kod <?php
/* działanie switcha wybierającego stację odjazdu */ switch($start) { case 'Skarzysko-Kamienna': $poczatek = 0; break; case 'Lipowe Pole': $poczatek = 0; break; case 'Szydlowiec': $poczatek = 0; break; case 'Radom': $poczatek = 0; break; case 'Warka': $poczatek = 0; break; case 'Piaseczno': $poczatek = 0; break; case 'Warszawa Zachodnia': $poczatek = 0; break; case 'Warszawa Centralna': $poczatek = 0; break; case 'Warszawa Wschodnia': $poczatek = 0; break; } /* działanie switcha wybierającego stację docelową */ switch($docelowo) { case 'Skarzysko-Kamienna': $poczatek = 0; $id = 1; break; case 'Lipowe Pole': $przerywnik = 5; $poczatek = 0; $id = 2; break; case 'Szydlowiec': $przerywnik = 12; $poczatek = 0; $id = 3; break; case 'Radom': $przerywnik = 46; $poczatek = 0; $id = 4; break; case 'Warka': $przerywnik = 101; $poczatek = 0; $id = 5; break; case 'Piaseczno': $przerywnik = 131; $poczatek = 0; $id = 6; break; case 'Warszawa Zachodnia': $przerywnik = 142; $poczatek = 0; $id = 7; break; case 'Warszawa Centralna': $przerywnik = 145; $poczatek = 0; $id = 8; break; case 'Warszawa Wschodnia': $przerywnik = 150; $poczatek = 0; $id = 9; break; } ?> Ten post edytował mambus 8.12.2010, 20:21:17 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 11 Dołączył: 20.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Masz fragment generujący pierwszą listę stacji:
Nie wiem jakie masz ustawienia do bazy więc to popraw i w razie konieczności popraw pobieranie ID bo nie wiem jak to pole się u ciebie w bazie nazywa. Reszta powinna działać. A plik switche.php nie działa ci prawdopodobnie dlatego że wybierasz tam stacje po ich nazwie a nie id. Szczerze powiem że nie do końca widzę jak to ma działać ale jeśli chodzi ci o to aby te listy z których wybierasz stacje przekazywały id stacji po wysłaniu formularza to powyższy skrypt to realizuje. Ten post edytował blade-mrn 9.12.2010, 12:29:13 -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:46 |