Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL]Wyświetlenie wolnych dat
emil1702
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 10.01.2012

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


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)




Go to the top of the page
+Quote Post
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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
Go to the top of the page
+Quote Post
emil1702
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 10.01.2012

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


  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

Go to the top of the page
+Quote Post
abort
post
Post #4





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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