![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cześć!
Napisałem pewien prosty skrypt php i chcę go teraz zoptymalizować. Mam jedną zagwozdkę, na którą nie mam pomysłu. Oto ona: W skrypcie ważną rolę odgrywa zmienna miesiąc wybrana przez użytkownika - chodzi o to, że użytkownik ma do wyboru kilka miesięcy, przekazuje wybór za pomocą $_GET, a następnie wyświetlane są dane z wybranego miesiąca. Jest jednak mały problem: jeśli istnieją dane z miesiąca poprzedniego, to ostatni ich wiersz musi się pojawić w bieżącym zestawieniu. Zmienna $_GET['mth'] (czyli ta przechowująca aktualnie wybrany miesiąc) ma format MM, a zapytanie sql które stosuję do wyciągnięcia wierszy z danego miesiąca:
Jeśli nie widać tego od razu, to tłumaczę: dla marca zapytanie to wyszukuje wyrazów z "-03-", dla kwietnia z "-04" etc. Żeby pobrać ostatni wiersz z poprzedniego miesiąca stosuję:
Niestety, zmienną $prev otrzymuję w nieelegancki sposób, a mianowicie instrukcją switch:
Nie wiem jednak jak zrobić to inaczej, bo zmienna $_GET['mth'] nie jest przecież liczbą, więc nie mogę po prostu odjąć od niej jedności. Bardzo proszę o wskazówki - być może już sam pomysł na pobieranie wierszy z danego miesiąca jest zbyt skomplikowane, bo można to zrobić za pomocą narzędzi ukrytych w MySQL, kto wie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
A pozatym jesli trzymasz daty w bazie jako DATE to mozesz uzyc mysqlowej funkcji MONTH() i sobie porownujesz normalnie z 1, 4, 12, 11 Świetne, właśnie o to mi chodziło. Wielkie dzięki! To jeszcze jedno: do wyświetlenia listy dostępnych miesięcy używam takiej konstrukcji:
Co też jest trochę głupie, bo muszę robić dwa przypadki dla j od 1 do 9 i od 10 do 12. Skoro już się uporałem z tamtym to tu też mogłyby być liczby w zwykłym formacie: 1,2,3... Wyobrażam sobie to tak:
Tylko w php nie ma funkcji tak samo działającej jak ta w MySQL, tzn. pewnie jest ale ja się nie mogę jej doszukać. Ten post edytował alkamid 28.03.2009, 14:03:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 10:18 |