Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Sprawdzenie ile jest rekordów w przedziale 21 dni
Forum PHP.pl > Forum > PHP
taqu
Witam,


Użytkownik wprowadza umowę i po akceptacji administratora muszę sprawdzić czy w ciągu dowolnych 21 dni NIE OSTATNICH wprowadził np: 6 umów.

Może macie jakiś pomysł?

Jedyne co przychodzi mi do głowy to:

- Pobrać pierwszą umowę i dodać do niej 21 dni.
- Sprawdzić czy końcowa data nie jest większa od dzisiaj
- Zliczyć ile jest umów w przedziale [umowa pierwsza, umowa pierwsza+21 dni]
- Potem pobrać drugą itd.


Może macie jakiś mniej łopatologiczny pomysł ?smile.gif
thek
A nie prościej pójść "od końca"? Pobierz sobie umowy z datą. Wybierz pierwszą umowę. Sprawdź czy wymagana ilość umów jest większa niż wszystkich umów klienta. Jeśli tak - nie spełnia warunku. z mostu. Jeśli umów jest więcej to weź pierwszy element i sprawdź czy element będący tyle umów od niego ile trzeba, by był ostatnią umową, czyli X-1 istnieje, a jeśli tak - porównaj daty. Jeśli różnica większa niż wymagane 21 dni - odrzuć i zapętlij się. Jeśli element do którego porównujemy nie istnieje - zakończ algorytm.

Czemu tak? Zauważ, że nigdy w pętli nie ma sensu iść do ostatniego elementu ale tyle od końca ile masz mieć umów. W teorii można by pokombinować, by puścić na poziomie bazy jako zapytanie, gdzie obliczymy różnicę daty między aktualnym elementem a przesuniętym względem niego o jakiś offset. Nie jestem jednak pewien czy napisanie takiego będzie proste bez uciekania się do funkcji.
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.