![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich serdecznie! To mój pierwszy post na tym forum. Od dawna wahałem się czy rejestrować się czy nie... samo czytanie wątków nie wystarczyło stąd jestem (IMG:style_emoticons/default/smile.gif) .
I od razu uderzam z pewnym problemem, mianowicie... Jestem w trakcie tworzenia modułu który pokazuje dane kolejowej stacji z której się odjeżdża i kolejowej stacji do której się przyjeżdża. Wszystkie elementy które stworzyłem do tej pory funkcjonują prawidłowo, ale mam problem który na chwilę obecną zablokował całkowicie moje prace... 1) Chciałbym aby z bazy MySQL wyciągało mi godziny odjazdów i na ich podstawie pokazywało godziny danego pociągu na danej stacji. Działa to na zasadzie sumowania się poprzednich rekordów, powiększanych o z góry zdefiniowaną w bazie wartość. Jak kilometry działają mi dobrze, tak mam problem z godzinami... niby pokazuje że są wstawione 3 rekordy, ale za nic nie chce się wyświetlić prawidłowa godzina. Szukałem i kombinowałem, ale nie mogę sobie dać z tym rady. Może pokażę kod: CODE <form name="godziny_odjazdow" method="get"> <select> <?php $downloadowanie = 'SELECT odjazd FROM odjazdy_skarzysko'; $zapytanko = mysql_query($downloadowanie); while ($dane = mysql_fetch_assoc($zapytanko)) { $skarzysko_odjazdy = $dane['odjazdy']; $skarzysko_odjazdy_dwa = strtotime($skarzysko_odjazdy); echo '<option>'.$skarzysko_odjazdy_dwa.'</option>'."\r\n"; } ?> </select> </form> </select> </form> Myślałem także że problemem może jest typ danych w tabelce na MySQL, ale miałem ustawione i TIME, i nic... teraz ustawione jest INT i wpisana liczba sekund, też nic. Ktoś może spotkał się z podobnym problemem ? 2) Druga część problemu jest bardzo bliska pierwszej, a więc. Za nic nie chcą się zsumować mi godziny... dobrze je wyświetla, w dobrym formacie. Do godziny na każdej stacji dodaje się wartość jaka jest zdefiniowana w bazie, ale te godziny nie sumują się... Pokaże kod: CODE $laczny_wynik = 'SELECT id, nazwa_stacji, kilometr, czas FROM stacje ORDER BY id'; $pobieranie = mysql_query($laczny_wynik); while ($rekord = mysql_fetch_assoc($pobieranie)) { $stacja = $rekord['nazwa_stacji']; $czasy = $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, '.',''); $sugestia = date("09:00"); $d1 = strtotime($sugestia); $rozklad = $rozklad + $czasy; $d = $d1 + $rozklad; $rozklad = date("H:i", $d); I co z tym począć ? (IMG:style_emoticons/default/sad.gif) Nie da rady nic ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
wszystkie operacje na godzinach wykonuj w formacie UNIX owym czyli sumując bądź odejmując sekundy, dopiero same wyniki konwertuj do formatu daty i godziny
pozatym z tego co widzę nie masz nigdzie zdefiniowanej watrtości $rozklad masz tylko
chyba że pokazałeś niepełny skrypt pozdro kowalcook |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Skrypt podałem pełny. Pod spodem jest tylko "echo" wyników. Za nic nie działa. I próbuje w UNIX owym i nic. Na końcu daje konwersje do formatu godziny za pomocą "date("H:i") i nic... wyświetla mi się tylko aktualna godzina. A jak nie dam tego "date" to wtedy wszystko działa poprawnie - czyli sumuje się tak jak ma się sumować, czasy się zgadzają, ale wyświetlają się w postaci sekund, a nie tak jak chciałbym - w postaci godzin i minut.
Eh, już nie mam do tego siły... pomóżcie (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 28 Dołączył: 7.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Napisaleś że robisz date('H:i') a to wyswietla bieżącą godzinę, musisz jako drugi parametr podać wyliczony znacznik czasu
date('H:i', $znacznik); |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
CODE $laczny_wynik = 'SELECT id, nazwa_stacji, kilometr, czas FROM stacje ORDER BY id'; $pobieranie = mysql_query($laczny_wynik); while ($rekord = mysql_fetch_assoc($pobieranie)) { $stacja = $rekord['nazwa_stacji']; $czasy = $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, '.',''); $sugestia = date("08:30"); $sugestia = strtotime($sugestia); $rozklad = $sugestia + $czasy; $rozklad = date('H:i', $rozklad); Okej, prawidłowo wyświetla czasy, ale nie dodaje się. Zasada działania wygląda w ten sposób, opiszę na przykładzie. W MySQLu: RADOM | 1800 <- (gdzie 1800 to inaczej 30 minut) WARKA | 2700 <- (gdzie 2700 to inaczej 45minut) PIASECZNO | 1800 <- (gdzie 1800 to inaczej 30minut) Każdy z tych czasów to czas jaki należy przebyć pomiędzy tymi stacjami. A teraz działanie: WARKA = 0 + 2700 (bo taki czas jazdy z Radomia do Warki) PIASECZNO = 0 + 2700 + 1800 (bo taka suma czasu jazdy z Radomia przez Warkę do Piaseczna) W ten sposób , w każdej następnej linijce sumuje się czas. W przypadku kilometrów, wystarczyło zastosować: $kilometry = $kilometry + $odleglosc i wszystko działa, ale w przypadku czasu, jeśli użyje zmiennej $sugestia w której ustawie sobie np 09:00 , to zamiast sumować w powyższy sposób, to do 09:00 dodaje mi tylko czas jaki jest pomiędzy stacjami i w tym tkwi problem...hm. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:23 |