Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nietypowa aktualizacja - wyświetlanie rekordów
Forum PHP.pl > Forum > PHP
slawekxx
Witam, mam problem z wyświetlaniem danych z rekordów , które to dane są aktualizowane co godzinę i zawierają kilka stałych oraz kilka zmiennych w jednym rekordzie.
Kryterium wyświetlania jest dzień i godzina czyli np. 19-09-2010 08:00:00 , 19-09-2010 09:00:00, 19-09-2010 10:00:00 .Chcę aby dane wyświetlane - pobierany z bazy były zawsze z ostatniej aktualizacji czyli z powyższego przykładu z 19-09-2010 10:00:00 itd. Nie wiem jak napisać taki skrypt do pobierania danych ?
everth
Nie bardzo rozumiem co chcesz osiągnąć. Na pierwszy rzut oka to mi przypomina jakieś wersjonowanie rekordów - czyli masz gdzieś tabelę STATIC_CONTAINER która zawiera pola które nie ulegają aktualizacji, oraz powiedzmy VERSION_CONTAINER który zawiera klucz elementu ze STATIC_CONTAINER i pola które są aktualizowane + timestamp. Wtedy zamiast update'ów po prostu insertujesz aktualizowane pola do tablicy VERSION_CONTAINER.

Wówczas to zwykle zapytanie powinno rozwiązać twój problem
  1. SELECT * FROM static_container AS static, version_container AS version WHERE static.id=version.id AND static.id='id_rekordu' ORDER BY version.timestamp DESC LIMIT 1

W teorii zwróci ci rekord o podanym ID z polami zawierającymi ostatnią aktualizację.
slawekxx
ok a jak by to miało wyglądać dla takiego zapytania mam tu połączone dwie tablice
  1. $resource = mysql_query('SELECT `name_pl`,`region`,`dzien`,`czas`,`wind_dir`,`wind_force`,`temperature`,`pressur
    e`,`lat`,`lng` FROM region , pogoda WHERE region= "'
    .$region.'" AND region.station_id=pogoda.station_id ') or die(mysql_error());}


tylko, że w jednej tablicy region są stałe tzn. name_pl i region a w tablicy pogoda stałymi są lat,lng

a to są dane , które zapisuje do rekordu "ΧΑΝΙΑ-Ακρωτήρι*LG25 http://www.meteo.gr/stations/chania/, Data 19-09-2010 Godzina, 08:00:00 , Pozycja GPS 35.51732, 24.124057
Kierunek wiatru 135, Sila wiatru 1, Temperatura 24, Cisnienie 1011 Nοτιοανατολικός Zachmurzenie ---"
everth
Możesz spróbować przesortować malejąco po kolumnach lat,dzien,czas i limitować tak jak poprzednio. Nie wiem czy zadziała ale spróbować zawsze można.
slawekxx
Ok spróbuje ale mam jeszcze jedno pytanie trochę z innej beczki :-) a mianowicie wyrzuca mi błąd "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in" to jest fragment kody , który napisałem
  1. if ($_POST)
  2. {
  3. if (!empty($_POST['region']) && is_scalar($_POST['region']))
  4. {
  5. $region = mysql_real_escape_string($_POST['region']);
  6.  
  7.  
  8. $resource = mysql_query('SELECT `name_pl`,`region`,`dzien`,`czas`,`wind_dir`,`wind_force`,`temperature`,`pressur
    e`,`lat`,`lng` FROM region
  9.  
  10. , pogoda WHERE region= "'.$region.'" AND region.station_id=pogoda.station_id ') or die(mysql_error());}
  11.  
  12. if(empty($region))
  13.  
  14. { echo'<h4>Nie wybrano regionu</h4>';
  15.  
  16. }
  17.  
  18. else
  19. { echo $region.'Wybierz region';
  20.  
  21. }
  22. while($rew=mysql_fetch_array($resource)){


wybieranie regionu odbywa się za pomocą input typu radio a po naciśnięciu przycisku submit i nie wybraniu regionu wyskakuje mi powyższy błąd ja chcę aby się wyświetlał komunikat " Wybierz region" , ten pierwszy się wyświetla "Nie wybrano regionu" a zaraz pod nim wyskakuje ten błąd
everth
Masz coś pomieszane z klamrami warunków (tak mi się wydaje) - przy czym czy zmienna istnieje lepiej sprawdzać isset() a nie empty(). No i jeszcze zapytanie, które prawdopodobnie też masz do dupy - już wcześniej się zastanawiałem czy ci się to wykonuje, jak masz tabele o takiej same nazwie jak kolumna w niej zawarta, pomijając już to, że nie zaznaczasz przy kolumnach z których tabel je bierzesz (bo chyba nie wszystkie leżą w tabeli pogoda?).

Zobacz jak zdefiniowałeś kolumny przy tworzeniu relacji i dostosuj do tego wzorca pozostałe (tabela.kolumna), zmień również te nazwy co mogą być w konflikcie (region). Przepisz ten skrypt albo idź spać - tak jak ja idę teraz.
slawekxx
Zmieniłem nazwy kolumny ale to bez różnicy tak czy siak się wykonuje zapytanie i jest odpowiedz poprawna tylko podczas nie wybrania regionu wyskakuje ten błąd nie wiem dlaczego
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.