![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 1 Dołączył: 22.11.2007 Skąd: lbn Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pisze sobie skrypt terminarza a w nim mam zapytanie: Kod mysql_query("SELECT id FROM terminarz WHERE data > NOW() AND widoczny='priv' AND owner='".$_SESSION['user']."'") or die('Błąd zapytania'); które wybiera mi ładnie te wyniki z bazy które będą najbliżej od dzisiejszej daty. Kolumna w tabeli "data" jest typu DATE jak coś. Chciałem dodać opcje powtarzania w terminarzu dat typu urodziny, imieniny itd.. więc dodałem kolumnę "rep_event" (o wartościach "Y" gdy zaznaczona w formularzu, "N" gdy nie) Wiec chciałbym zmodyfikować zapytanie (choć nie wiem czy da się samym zapytaniem) tak aby wybierało mi rekordy które mają datę najbliższą od dzisiejszej, z tym że pole typu DATE zapisuje mi date w formacie rrrr-mm-dd. Teraz jeśli dajmy na to jakieś zdarzenie miało już miejsce (dodam czyjeś urodziny np z 1980 roku) to niestety nie wyświetli mi go . Gdy skrypt porówna dzisiejszą datę z wpisaną datą zdarzenia zobaczy że to już było.. Po tym dochodzimy do wniosku że wypadało by porównać ze sobą tylko miesiąc i dzień zdarzenia z dzisiejszą datą (dzień, miesiąc) 1. Jak to zrobić w moim zapytaniu (IMG:style_emoticons/default/questionmark.gif) 2. Jeśli zapytanie będzie już dobrze wybierać rekordy gdy dodam wtedy do zapytania WHERE rep_vent='Y' AND ... będzie mi poprawie wybierać rekordy w sposób który chcę (IMG:style_emoticons/default/questionmark.gif) Dla jasności (bo trochę namotałem) chcę wyciągnąć rekordy z datami które jeszcze nie miały miejsca oraz te które się już zdarzyły ale mają zaznaczona opcję powtarzania się co rok. Ten post edytował tofik1778983 4.03.2011, 04:01:10 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kwerenda z warunkiem:
sięgnie tylko rekordy z danego dnia / miesiąca, ale z różnych lat. Tobie chodzi jednak o rekordy z dat najbliższych dzisiejszej (również przyszłych). Zmiana kryterium na: też nie załatwia sprawy, bo np. pod koniec roku nie będziesz widział dat ze stycznia. Może spróbuj inaczej: 1. Tak wyciągasz rekordy z datą dzisiejszą i z przyszłości (zakładam, że w tabeli możesz mieć także daty przyszłe): 2. Tak wyciągasz rekordy z dat przeszłych, przerabiając nr roku na przyszły rok: 3. Wypróbuj te kwerendy oddzielnie, ew. coś popraw (pisałem z ręki bez sprawdzenia czy / jak to chodzi). 4. Docelowa redakcja kwerendy: Być może we frazie WHERE trzeba ustawić jakieś "odcięcie", abyś dostawał rekordy z datami np. do 2 mies. w przód, czy coś w tym rodzaju. Ten post edytował Valdi_B 4.03.2011, 15:46:31 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 1 Dołączył: 22.11.2007 Skąd: lbn Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za poradę, sprawdzę niestety dopiero we wtorek jak wrócę do domu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:51 |