Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Informacja o wydarzeniach z danego miesiąca
Forum PHP.pl > Forum > PHP
arlid
Witam. Mam tabele w bazie danych, gdzie jest pole daty, którą podaje użytkownik. Teraz chciałbym uzyskać coś takiego. Mieć datę o 2 lata do przodu od tej wpisanej. Móc wyświetlić w jakimś panelu (ciągle wyświetlane) wydarzenia, które przypadają na ten miesiąc. Dane wydarzenie pokazuje się z datą nową (ta +2 lata) od wpisania przez użytkownika, czyli pokaże mu się za dwa lata. Czy da się coś takiego osiągnąć? Wydaje mi się, ze można to zrobić tak:
1. Pole daty w bazie, którą wpisuje użytkownik (nie wiem jak wykonać jakąś kontrolę tego pola? )
2. Stworzyć nowe pole w bazie, które uzupełni się poprzez dodanie liczby dni(lat) do wartości pola wpisanego przez użytkownika (zrobi to PHP?)
3. Wyświetlić listę wydarzeń z danego miesiąca - da się wszystkie wyświetlić jedynie po miesiącu? Może coś z data i between?

Dobry tok myślenia? Pozdrawiam
SmokAnalog
Możesz precyzyjniej opisać co byś chciał? Bo nie rozumiem co masz na myśli pisząc "chcę mieć datę" czy "przypadające na ten miesiąc". Żeby dodać dwa lata z poziomu SQL, to można tak:
  1. SELECT DATE_ADD('2015-03-02', INTERVAL 2 YEAR)
arlid
Już tłumacze. Chodzi o wypożyczenie sprzętu i jego zwrot. Admin dodaje do bazy nowy rekord z wypożyczeniem (data dodawana automatycznie z chwila dokonania zapisu w bazie lub wpisana przez admina) do kolumny "DATA".
2. Tworze druga kolumnę DATA_ZWROT i za pomocą SQLa (dzięki za zapytanie) dodaje tam 2 lata.
3. Chce zrobić sobie listę przedmiotów, które maja być zwrócone w danym miesiącu (1 dnia miesiąca widzę również te przedmiotu, które mają wrócić do ostatniego dnia miesiąca)

Mam nadzieję, że teraz jest to bardziej zrozumiałe smile.gif
SmokAnalog
Żeby sprawdzić sprzęt, który musi zostać zwrócony w danym miesiącu możesz zrobić jedną z dwóch rzeczy:
  1. Obliczyć daty od/do (pierwszy i ostatni dzień miesiąca) i zawrzeć je w WHERE `data` BETWEEN data1 AND data2
  2. Dać warunek, że musi się zgadzać rok i miesiąc

Ja bym poszedł z drugą opcją. Zapytanie będzie wyglądało mniej więcej tak:
  1. SELECT *
  2. FROM `tabela`
  3. WHERE YEAR(`data_oddania`) = YEAR(CURRENT_DATE())
  4. AND MONTH(`data_oddania`) = MONTH(CURRENT_DATE())
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.