Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> odpowiednia funkcja
laresistance
post 2.08.2012, 10:36:24
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 18.07.2012

Ostrzeżenie: (0%)
-----



Mam daty w tabeli zapisywane typu text w formacie YYYY/MM (np 2012/04)
w tabeli są 4 kolumny data_bookowania, data_od, data_do, ilosc
Teraz musze napisać a php pętlę, w któej będzie wykonywana akcja
jeśli data_do jest większa od daty_od to zwieksz licznik dla kazdego miesiaca z przedzialu o ilosc
Tabelą wyjściową jest tabela o kolumnach data_bookowania miesiac_zainteresowania_ ilosc

Przykład:
wiersz w tabeli to 2012/02 2012/03 2012/06 35
czyli pętla przechodząc przez ten wiersz wie, że data 2012/06 jest wieksza niz 2012/03 i zwieksza licznik dla każdego zmiesiaca_zainteresowania oprócz pierwszego czyli 2012/04, 2012/05, 2012/06 o ilosc 35

Teraz pierwszym problemme jest zapis z textu jak to porozdzielać tak by php mógł porónać wielkości? Nie może być string tylko int
Drugi problrm jak miałaby wyglądać taka pętla
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
IceManSpy
post 2.08.2012, 15:42:57
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Szkoda, że tak trzymasz daty - może w przyszłości powodować to problemy i bez sensu komplikować życie. Ale do rzeczy.

Problem pierwszy: funkcja explode: http://php.net/manual/en/function.explode.php - wybierzesz sobie odpowiednie miesiące (tylko sprawdź, cyz nie będzie w przyszłości problemów z przejściem między latami np 2012/2013)
Jeśli miałbyś daty to: funkcja strtotime: http://php.net/manual/en/function.strtotime.php zwróci Ci timestampa - porównaj te 2 wartości.

Drugi problem: jeśli będziesz patrzył tylko na miesiące to wygląda to mniej więcej tak (jeśli nic nie pomyliłem):
  1. while(true)
  2. {
  3. if(miesiac_koniec == miesiac_aktualny)
  4. {
  5. break;
  6. }
  7. else
  8. {
  9. aktualizacja;
  10. }
  11. }
  12.  


--------------------
Go to the top of the page
+Quote Post
lukaskolista
post 2.08.2012, 19:53:20
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Cytat
Nie może być string tylko int
Oczywiscie, ze moze to byc string. PHP ma wbudowany mechanizm porownywania dat wlasnie w postaci stringa. Nastepnym razem zanim napiszesz niepotrzebny temat... rusz sie i zrob prosty test w postaci
  1. var_dump('2012/04' > '2012/03');
  2. var_dump('2012/04' < '2012/03');
i wszystko bedzie jasne. Programowanie nie polega na pisaniu tematow na forum, a na samodzielnym rozwiazywaniu problemow. Rozumiem jakis powazny problem, ale zwykly warunek...
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:46