Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Wyświetlenie wolnych dat
Forum PHP.pl > Forum > Przedszkole
emil1702
Mam w bazie tabelę spotkania

ID | DATA | GOSP | GOŚĆ

Natomiast w skrypcie chcę, aby dana osoba mogła zaprosić inną na spotkanie w najbliższym tygodniu, ale tylko w dni robocze, jednak w jeden dzień może być tylko jedno spotkanie (wszystkie spotkania są zapisane w w/w tabeli).

Jak zrobić, aby uformować listę wolnych, nabliższych dni?

Przykład w tabeli mam zajęty 2 i 3 lipca, a mamy dziś wtorek, 1 lipca, więc wolne terminy to 4 (piątek), 7 (poniedziałek) i 8 (wtorek)




abort
Mając aktualną datę obliczasz:
1. najbliższy poniedziałek
2. najbliższy piątek PO w/w PONIEDZIAŁKU (!)
3. odpytujesz bazę na spotkania pomiędzy tymi datami, sortując po dacie (od poniedziałku do piątku)
4. Pobierasz dane z bazy i wyświetlasz poszczególne dni w taki sposób, że:
a) jeśli w dniu nie ma spotkania, to można je zarezerwować,
cool.gif jeśli w danym dniu spotkanie jest, to można je odwołać (jeśli planujesz taką funkcjonalność)

Wszystko pakujesz w jakieś FORM albo coś w tym stylu.
To tak ogólnie, na pewno dałoby się to zoptymalizować, ale to już sam się pobawisz... smile.gif
emil1702
  1. $data = date('Y-m-d');
  2. $dzien_tyg = date("l",strtotime($data));
  3.  
  4. if ($dzien_tyg == 'Monday') {
  5.  
  6. $dodaj1dzien = strtotime('1 day',strtotime($data));
  7. $dodaj1dzien = date('Y-m-d',$dodaj1dzien);
  8.  
  9. $dodaj4dni = strtotime('4 days',strtotime($data));
  10. $dodaj4dni = date('Y-m-d',$dodaj4dni);
  11.  
  12. $dodaj7dni = strtotime('7 days',strtotime($data));
  13. $dodaj7dni = date('Y-m-d',$dodaj7dni);
  14.  
  15. echo 'Może zapraszać od '.$dodaj1dzien.' do '.$dodaj4dni.' oraz '.$dodaj7dni.' jeśli wolne';
  16.  
  17. }


Zrobiłem wcześniej coś w tym stylu, można to zrobić jakoś lepiej, czy właśnie takim schematem to rozwiązaćquestionmark.gif

abort
Znacznie prościej, bez ifów.
date('w') podaje numerycznie dzień tygodnia.
Zapewne przeoczyłeś to w manualu, bo przecież manuala czytałeś, prawda?
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.