Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pobieranie godziny z bazy danych
mambus
post
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 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ąć ? sad.gif

Nie da rady nic ?
Go to the top of the page
+Quote Post
kowalcook
post
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
  1. $rozklad = $rozklad+d1;




chyba że pokazałeś niepełny skrypt


pozdro kowalcook


Go to the top of the page
+Quote Post
mambus
post
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 sad.gif
Go to the top of the page
+Quote Post
tomm
post
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);
Go to the top of the page
+Quote Post
mambus
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:38